【问题标题】:Having the UIControlEventValueChanged fire when UISlider is being animated?在 UISlider 动画时触发 UIControlEventValueChanged?
【发布时间】: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] 时,滑块会移动,但事件不会触发。

是否有我可以联系到的代表或涵盖这种情况的活动?

感谢您提供的任何帮助:)

【问题讨论】:

    标签: iphone cocoa-touch uislider


    【解决方案1】:

    听起来像一个错误,请尝试通过调用解决此问题

    [slider sendActionsForControlEvents:UIControlEventValueChanged];
    

    在您以编程方式设置值之后。

    【讨论】:

    • 嗨,ChriB,谢谢:) 手动发送动作确实迫使它做出响应并表现得像它应该的那样?我实际上并不认为它会在动画期间调用委托方法。有没有办法控制动画的速度,比如在 UIAnimation 中,在做 [slider setValue:14 animated:YES] 时,如果我可以添加一个问题:)
    • 不要认为有办法改变这一点。您应该将此作为一个新问题提出,也许其他人知道。 :)
    • 嗯,11 年后,无论出于何种原因,setValue 都不会触发 valueChanged 操作。
    猜你喜欢
    • 2013-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-19
    • 2010-11-06
    相关资源
    最近更新 更多