在我目前的项目中,我创建了一个应用程序,该应用程序利用UISlider的位置与显示给用户的目标值相关。我有完整的功能,但我现在正试图加强它。
当用户进入应用程序而不是让它们拖动时,是否可以将UISlider设置为自己(最小到最大)自行来回移动?
思想:
可能使用循环序列?
不寻找有人为我编码,我非常喜欢这一部分。只是寻找指导。
答案 0 :(得分:0)
UISlider有this method,允许您以编程方式更改滑块的值:
- (void)setValue:(float)value animated:(BOOL)animated
小心使用循环,但是你不想阻止你的主线程让你的应用程序无响应。
Trumpetlick's answer提供了有关使用NSTimer的良好信息,这可以帮助您解决此问题。
答案 1 :(得分:0)
我认为在这种情况下,您必须设置一个NSTimer,其中包含您希望每帧的时间,将滑块内的操作代码分离为可由您调用的例程,然后在计时器操作代码中,调用您的例程,然后手动设置滑块位置。
在此处查看设置NSTimer
NSTimer基本上允许您设置任何您想要的帧速率,并使其远离MAIN线程。
答案 2 :(得分:0)
除了NSTimer的回答,我不会建议使用它,而是使用CADisplayLink。类似的过程,但不是使用NSTimer使用CADisplayLink。
CADisplayLink与屏幕刷新率同步,因此您可以根据当前帧调整动画和滑块值,使动画显得平滑。