2011-03-19 27 views
1

我有一個UITableView myTable,其中每行都有UISwitch。如何知道哪個行在UITableView中打開

我如何找到表的行數開關被我switchChanged方式有何變化?

- (void) switchChanged:(id)sender { 
    UISwitch* mySwitch = sender; 
    NSLog(@"%d", mySwitch.on); 
} 

謝謝

回答

1

一個建議可能是使用的代碼。

當您安裝在cellForRowAIndexPath:與開關單元可以設置開關標籤的行值。這樣,你可以再次讀出的標籤,並獲得該行和項目...

+0

工程很棒。謝謝 – tiw 2011-03-19 20:07:36

0

如果你只有一個部分(或只是一個部分,使用該方法的開關),你可以存儲在交換機上的行數tag屬性。或者,如果將自己限制在合理數量的部分和行中,則可以將標記號存儲在高位N位,並將行號存儲在標記整數的低位M位(N + M < 32以獲得最佳結果)。

或者你可以使用superview從開關,直到你找到的UITableViewCell(使用isKindOfClass:測試),然後用indexPathForCell:在表視圖,找到索引路徑。

或者你可以繼承UISwitch有存儲索引路徑的屬性。

或者你可以使用objc_setAssociatedObject到指數路徑與交換機關聯。

相關問題