2010-05-12 136 views
13

我已下定UISlider達價值響應變化的事件:UISlider動畫時UIControlEventValueChanged是否觸發?

[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」方法時,「tag」的位置被設置。

使用[slider setValue:position animated:YES]時,滑塊會移動,但事件不會觸發。

是否有我可以參加的委託或涵蓋此場景的事件?

感謝您的幫助給:)

回答

26

聽起來像一個bug,嘗試通過調用

[slider sendActionsForControlEvents:UIControlEventValueChanged]; 

之後所設置的值編程來解決此。

+0

嗨ChriB和謝謝:) 手動發送操作確實強迫它做出響應並表現得像它應該?我其實並不認爲它會在動畫過程中調用委託方法。 有沒有一種方法來控制動畫的速度,就像在UIAnimation中一樣,當[slider setValue:14 animated:YES]時,如果我可以添加一個問題:) – RickiG 2010-05-12 17:29:53

+0

不要以爲有一種方法可以改變它。你應該問這是一個新問題,也許別人知道。 :) – bddckr 2010-05-12 17:39:07