UIImageView.transform上的KVO是跳跃的

时间:2014-09-05 12:04:35

标签: ios objective-c swift uiimageview key-value-observing

我正在使用Swift为iOS创建自定义滚轮控件。车轮控制将允许用户拖动以选择值。车轮控制包含12个标签,但用户应该能够使用此车轮从0到200中选择任何值。为了达到这个效果,每个标签必须在达到某一点时用增量值更新。

enter image description here

我已经注册了这样的值观察者:

imageBlueDialer.addObserver(self, forKeyPath: "transform", options: NSKeyValueObservingOptions.New, context: nil)

并编写代码以更新标签:

observeValueForKeyPath(keyPath: String!, ofObject object: AnyObject!, change: [NSObject : AnyObject]!, context: UnsafePointer<()>) { }

如果滚动速度很慢,标签会更新,但如果我进行快速大扫描,则观察者会跳过导致此更改的更改:

enter image description here

任何人都可以指导我如何使我的观察员更敏感?感谢提前!

1 个答案:

答案 0 :(得分:4)

不要看变换。观看数据。

您将变换视为实际值。相反,您的拨号器应该基于手势识别器维护角度属性。转换和转盘的值都应该基于该属性。

一个很好的起点是RW-KnobControl。将代码转换成Swift也很容易(我自己做过一次;只是没有把它推到github上)。

相关问题