gpt4 book ai didi

ios - 自定义 UIScrollView 动画

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:24:06 25 4
gpt4 key购买 nike

我正在使用带有按钮列表的 UIScrollView,看起来很像 UIPickerView。我刚刚实现了摇动随机播放,在检测到摇动后,我使用以下方法将 UIScrollView 的内容偏移量设置为 randomShuffle 的位置。

[Singlescroll setContentOffset:CGPointMake(jumpX, jumpY+randShuffle*sepValue) animated:YES];

我不想将内容偏移量移动到与按钮匹配的随机位置,而是想实现一个随机播放动画,其中 View 几乎像老虎机一样“旋转”,然后结束于 randomShuffle 按钮位置。

我试图通过简单地将偏移设置为 UIScrollView 顶部的动画然后在返回到 randomShuffle 位置(一个接一个)之前再次返回来做到这一点,但是这没有用,它直接进入了 randomShuffle位置。我意识到我没有使用计时器尝试此操作,因此动画没有延迟,但我想尽可能避免运行计时器。

是否有任何内置动画可以处理这个问题?如果不是,请您建议我在使用计时器之前如何处理这个问题?谢谢。

最佳答案

除了使用 animated:YES,您是否尝试将其放入类似的内容中:

[UIView animateWithDuration:.25 delay:0 options:UIViewAnimationOptionBeginFromCurrentState animations:^{
[Singlescroll setContentOffset:maximumOffsetPoint]; //spin all the way up?
}completion:^(BOOL finished){
if (finished)
//kick off another animation, to spin it back down:
[UIView animateWithDuration:.25 delay:0 options:UIViewAnimationOptionBeginFromCurrentState animations:^{
[Singlescroll setContentOffset:CGPointMake(jumpX, jumpY+randShuffle*sepValue)];
}completion:nil];
}
}];

我不知道这是否回答了您的问题,但完成 block 非常方便,可能正是您所需要的。在完成 block 中,第二个动画只会在第一个动画结束时被调用。

另外,UIView 上有几个 animateWithDuration: 方法,但根据我的经验,这个方法对于 ScrollView 的 contentOffset 和 zoomToRect 等属性的动画效果更可靠。

关于ios - 自定义 UIScrollView 动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8475100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com