2012-08-13 127 views
1

我在UITableView中選擇了多個單元格,但編輯後會自動取消選擇。我搜索了一下,我看到有人說他們稱之爲'reloadData',導致選擇被刪除,但我不會在'viewDidAppear'之外的任何地方調用reloadData。即使編輯已被取消而沒有改變任何內容(當點擊工具欄中的「編輯」按鈕,然後單擊「完成」按鈕而不進行任何編輯),它們也會被取消選擇。我不確定發生了什麼。或者,如果我可以檢測到編輯完成時(點擊完成按鈕時),我可以簡單地重新選擇所有已選擇的單元,但我不知道如何檢測它。 我能阻止細胞被取消選擇嗎?或者在編輯後重新選擇單元格?UITableView在編輯後取消選擇所選單元格

在此先感謝。

+0

發佈源代碼 – Rams 2012-08-13 04:46:13

回答

0

沒關係。我發現只要點擊'編輯'或'完成'按鈕,就會調用- (void)setEditing:(BOOL)editing animated:(BOOL)animated

0

我建議最好的辦法就是在你的「完成」按鈕,每按之後自己重新選擇了。

這是相當正常的細胞得到取消或按鈕未按得到,因爲這是他們的正常狀態 - 在你的情況一樣 - 如果你編寫自己的代碼來改變這種exept。

這是如何選擇行:

[tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone]; 

如果你有一個可以選擇請確保您有相應的設置多行,否則可能永遠取消所有,但最近的行。

+0

感謝您的答覆。我知道如何選擇行,但是如何檢測'完成'按鈕被點擊的時間? – Dennis 2012-08-13 06:42:01

1

我相信你正在努力實現在按下按鈕的選擇和取消,如果你想改變一個UITableViewCell選擇的狀態,請嘗試使用方法的按鈕操作。

-(IBAction) someAction { 
    if(buttonToggled){ 
    [tableView selectRowAtIndexPath:indexPath animated:NO scrollPosition:UITableViewScrollPositionNone]; 
    }else{ 
    //Do something 
    } 
} 

用於更改backgroundColor。

cell.selectionStyle = UITableViewCellSelectionStyleGray; 
cell.selectedBackgroundView.backgroundColor=[UIColor blackColor]; 

有關上述的更多信息,請查看鏈接。

UITableView Cell selected Color?

相關問題