的編輯控制我推翻方法:改變一個UITableViewCell
- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView
editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath
做一個加號按鈕旁邊出現一個細胞。用戶編輯單元格的內容後,我想將其從加號按鈕更改爲減號按鈕。邏輯已經用這種方法編寫了。問題是,即使這個方法被調用,並且它返回了正確的值,它也不會更新按鈕。
使用:
[myViewCell setNeedsLayout];
...不會導致[myTableView tableView:editngStyleForRowatIndexPath:]
下運行。
調用
[tableView reloadRowsAtIndexPaths: ... withRowAnimation:UITableViewRowAnimationNone];
...確實很奇怪......它會導致[myTableView tableView:editngStyleForRowatIndexPath:]
要對除了一個我在reloadRowsAtIndexPaths
參數發送給所有行調用。
不管,因爲我插入行,該方法被調用我的所有行,包括我想改變。我檢查它是否返回UITableViewCellEditingStyleDelete
。儘管它返回了正確的值,但它仍然顯示加號圖標而不是減號圖標。
調用[tableview reloaddata]
不起作用。
UITableViewCell
上有一個editingStyle
屬性,它似乎可以解決我的問題,但它是隻讀的。 這就好像一旦tableView:editingStyleForRowAtIndexPath:
方法已經設置editingStyle
,這是不能改變的。那麼爲什麼當這些行滾動到視圖中時這種方法會被不斷調用呢?
我怎樣才能改變一個UITableViewCell的編輯控制?
您會注意到,在Apple的Contacts應用程序中,除了它從UITableViewCellEditingStyleNone
而不是UITableViewCellEditingStyleInsert
轉換爲相同的確切行爲。這可以通過編輯聯繫人,然後在最後一個手機字段中輸入一個數字(即添加一個新的電話號碼)來看到:當前行獲得一個減號按鈕,並在其下面添加一個新行。
有沒有找到一個更好的解決方案呢?它是從左側開始動畫的東西,無論是 - 符號還是在本例中,用於清除單元格中文本字段內容的(x)。再加上在表格中的某些東西上運行prepareForReuse看起來很可怕。 – smparkes 2011-06-03 01:11:33
cf http://stackoverflow.com/questions/5622431/update-editing-style-of-uitableviewcell-depending-on-contents – smparkes 2011-06-03 02:02:35