0
你好,我有一個UISegmentedControl有兩個段。選定的段在某些情況下以編程方式進行修改,而用戶在某些情況下進行修改。我只想在用戶操作導致更改時觸發選擇器(只有當用戶實際按下分段控件時,而不是系統執行segmentedControl.selectedSegmentIndex = ...時)。任何想法?區分UIsegatedontrol值更改來自用戶還是來自系統
你好,我有一個UISegmentedControl有兩個段。選定的段在某些情況下以編程方式進行修改,而用戶在某些情況下進行修改。我只想在用戶操作導致更改時觸發選擇器(只有當用戶實際按下分段控件時,而不是系統執行segmentedControl.selectedSegmentIndex = ...時)。任何想法?區分UIsegatedontrol值更改來自用戶還是來自系統
如果你
[self.segment setSelectedSegmentIndex:1];
這不會叫的valueChanged的行動上段,所以你有什麼問題嗎?
[segmentedControl addTarget:self action:@selector(segmentAction:) forControlEvents: UIControlEventValueChanged];
- (IBAction)segmentAction:(id)sender {
// valuechanged connected function
UISegmentedControl *segControll = (UISegmentedControl *)sender;
if (segControll.tag == 0) {
}
else {
isProgramaticallyChanged = NO; //important
}
}
確實我誤讀了文檔 –
不需要它發生的事情比你想象的要多,我不得不測試它以確保:) –