在 UISlider 动画时触发 UIControlEventValueChanged?
Posted
技术标签:
【中文标题】在 UISlider 动画时触发 UIControlEventValueChanged?【英文标题】:Having the UIControlEventValueChanged fire when UISlider is being animated? 【发布时间】:2010-05-12 15:44:55 【问题描述】:我已将 UISlider 设置为响应值更改事件:
[customSlider addTarget:self action:@selector(sliderMove:) forControlEvents:UIControlEventValueChanged];
[customSlider addTarget:self action:@selector(sliderStart:) forControlEvents:UIControlEventTouchDown];
[customSlider addTarget:self action:@selector(sliderEnd:) forControlEvents:UIControlEventTouchUpInside];
我想将滑块动画到用户上次使用视图时离开的位置。我这样做:
[customSlider setValue:position animated:YES];
一切正常,除了,我建立了一个“标签”,它挂在滑块“旋钮”上,这样用户在移动滑块时可以看到值。在 UIControlEventValueChanged 调用“sliderMove”方法时设置“标签”的位置。
使用[slider setValue:position animated:YES]
时,滑块会移动,但事件不会触发。
是否有我可以联系到的代表或涵盖这种情况的活动?
感谢您提供的任何帮助:)
【问题讨论】:
【参考方案1】:听起来像一个错误,请尝试通过调用解决此问题
[slider sendActionsForControlEvents:UIControlEventValueChanged];
在您以编程方式设置值之后。
【讨论】:
嗨,ChriB,谢谢:) 手动发送动作确实迫使它做出响应并表现得像它应该的那样?我实际上并不认为它会在动画期间调用委托方法。有没有办法控制动画的速度,比如在 UIAnimation 中,在做 [slider setValue:14 animated:YES] 时,如果我可以添加一个问题:) 不要认为有办法改变这一点。您应该将此作为一个新问题提出,也许其他人知道。 :) 嗯,11 年后,无论出于何种原因,setValue 都不会触发 valueChanged 操作。以上是关于在 UISlider 动画时触发 UIControlEventValueChanged?的主要内容,如果未能解决你的问题,请参考以下文章
在没有 Timer 的情况下播放核心动画时如何自动更新 UISlider 的值