2010-01-13 126 views
15

我有一個UISegmentedControl有六個段,我希望他們在值改變時調用一個方法,而且當每個段得到一個UIControlEventTouchDragIn,因爲我想要一個UILabel顯示它的名字,當人試圖選擇某件東西,並在控件上拖動手指,但即使當我拖入事物時,分段控件也不會檢測到此呼叫。請幫忙。也許我需要在拖動時調用方法的控件上創建UIButton,但是當他們接收到一個敲擊時調用value changed方法。UISegmentedControl委託/觸摸事件

回答

-6

您可以繼承UISegmentedControl並覆蓋- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { return; }方法來管理觸摸的拖動和位置。

因爲無論如何你都無法分辨拖動是在哪個段上進行的,所以手動操作觸摸並使用這些功能進行跟蹤可能會更好。

+1

我希望他們這樣做更容易。我真的做到了! – Jaba 2010-01-13 17:20:02

33

也許我沒有正確理解你的問題,但不能你只需要使用這樣的:

[segmentedControl addTarget:self 
     action:@selector(action:) 
     forControlEvents:UIControlEventValueChanged]; 

,只是更換由UIControlEventTouchDragIn的UIControlEventValueChanged?然後在你的動作方法中做任何需要做的事情,比如改變UILabel的文本。

我在每個單元格中都有一個單元格和一個UISegmentedControll的UITAbleView,它對我來說工作得很好。

UISegmentedControl的文檔似乎在線不可用,但您可以在XCode的Organizer中看到它,上面的代碼是第一個示例。