2010-05-07 87 views
0

任何人都可以解釋我如何檢測表視圖中的選擇像tableView:didSelectRowAtIndexPath中的頭視圖:?這對我來說非常有用。我已經將頭文件定義爲UITableCellView,因此我可以將UISwitch作爲附件視圖進行附加,並且效果很好,但現在我無法檢測到交換機中所做的更改。有什麼建議麼?UITableView頭選擇

回答

1

我打算假設您正在動態創建交換機,而不是在IB中創建交換機。如果是這樣的話,您需要做兩件事來接收並區分開關的變化。首先,在創建開關時,將其tag屬性設置爲表示相應部分的某個值(如可能是部分索引本身)。然後,向交換機添加一個事件處理程序,該處理程序將回調視圖控制器上的方法。

所以,在tableView:viewForHeaderInSection:,懶洋洋地實例化你的頭來看,也許緩存,然後這樣說:

[switch setTag:section]; 

正是如此添加事件處理,其中switchToggled:只是定義爲任何其他IBAction爲將:

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

然後,只投了sender你在你的事件處理程序接收到UISwitch *,並使用tag屬性來判斷哪些開關被觸發。