2014-09-05 42 views
2

我正在使用Swift爲iOS創建一個自定義車輪控件。輪控制將允許用戶拖動來選擇一個值。車輪控制器包含12個標籤,但用戶應該能夠使用該車輪從0到200之間選擇任何值。爲了達到這種效果,每個標籤必須在達到某個特定點時使用遞增的值進行更新。UIImageView.transform上的KVO是jumpy

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

任何人都可以請指導我如何使我的價值OBSERVER更加敏感?提前致謝!

回答

4

不要看轉換。觀看數據。

您正在將變換視爲實際值。相反,撥號程序應該基於手勢識別器維護一個角度屬性。轉換和撥號的值都應該基於該屬性。

一個好的起點是RW-KnobControl。將代碼轉換成Swift非常容易(我自己做過一次,只是沒有把它推到github上)。

+0

好的,讓我試着解決它的旋鈕控制的幫助。謝啦 :) – 2014-09-05 12:38:34