2013-03-22 41 views
0

請檢查下面的代碼..如何獲得accessoryType爲UITableViewCell的?

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    // I may use this object to maintain check state. 
    ab_user_info *obj = nil; 
    obj = [self.listData objectAtIndex: [indexPath row]]; 

    UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
    cell.accessoryType = UITableViewCellAccessoryCheckmark; 

    [contact_table reloadData]; 
} 

按照上面的代碼,我都檢查過了,我一下表,我應該怎麼做才能再次取消,我知道,我應該改變的附件類型爲無,但是什麼時候,我怎麼知道以前它被檢查?有沒有任何API告訴我們細胞的附屬類型。

我已經在其他表視圖做在我的模式OBJ增加一個額外的成員,以跟蹤檢查,未經檢查的細胞,但是我只是想知道有沒有那個什麼辦法?

+0

你想使用多選表tableview或單選表視圖嗎? – Pratik 2013-03-22 06:22:17

+0

@Pratik我只想改變選中標記。選擇沒有needer爲我的情況。 – Newbee 2013-03-22 06:23:17

+0

雅,但如果你在tablevie中使用multiselection然後是很容易實現,否則你必須採取布爾陣列來打開這個東西 – Pratik 2013-03-22 06:24:38

回答

3
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
    if (cell.accessoryType == UITableViewCellAccessoryCheckmark) 
    { 
     cell.accessoryType = UITableViewCellAccessoryNone; 
    } 
    else 
    { 
     cell.accessoryType = UITableViewCellAccessoryCheckmark; 
    } 
+0

無需重新加載TableView – 2013-03-22 06:24:22

1

的tableView是

TableView中只是用來「顯示器」的數據的數據展示視圖對象,它不是經理或數據的跟蹤器。您需要跟蹤後端數據的屬性。我的意思是如果你想跟蹤哪些行被選中或不選中,它不能由TableView管理,你需要通過使用NSArray或任何其他對象類型來處理它。

1

試試下面的代碼:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 
    { 
     // I may use this object to maintain check state. 
     ab_user_info *obj = nil; 
     obj = [self.listData objectAtIndex: [indexPath row]]; 

     UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath]; 
     if (cell.accessoryType == UITableViewCellAccessoryCheckmark) { 
      cell.accessoryType = UITableViewCellAccessoryNone; 
     }else{ 
      cell.accessoryType = UITableViewCellAccessoryCheckmark; 
     } 


    } 

希望這會幫助你。

所有最好的!

相關問題