2011-04-11 41 views
5

我正在創建一個類似於iPad聯繫人的基於表格的界面,用戶可以通過點擊底部的空行添加到行列表中。該表始終處於編輯模式,非空行應在左側具有標準的刪除編輯圖標。只要用戶開始在最後一個空白行中輸入,應該在左側添加一個刪除圖標(並添加一個新的空白行)。根據內容更新UITableViewCell的編輯風格

有誰知道如何讓UITableView按需更新編輯風格?一切正常,除非刪除圖標不出現,直到用戶將該行滾動出視圖然後返回到視圖。

這裏是我的editingStyleForRowAtIndexPath實現:

- (UITableViewCellEditingStyle)tableView:(UITableView *)tableView 
      editingStyleForRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    if (/* text field contains data */) 
    { 
     return UITableViewCellEditingStyleDelete; 
    } 
    else 
    { 
     return UITableViewCellEditingStyleNone; 
    } 
} 

回答

10

我昨天打了同樣的問題。你基本上必須切換表視圖的編輯模式屬性。完成之後,它將刷新您單元格的編輯樣式。

下面是做的伎倆,我的代碼:

self.tableView.editing = NO; 
self.tableView.editing = YES; 

這給什麼,在我看來是同一類的聯繫人應用效果確切。至少,它會刷新您的editingStyle。

+0

工作,謝謝!也許我應該在一個新問題中提出這個問題,但是當觸點刪除圖標時,您是否也找到了刪除活動響應者UITextField光標的方法? – 2011-04-15 15:27:58

+0

不,我從來沒有考慮過這樣做,因爲這不是我真正關心的問題。 – 2011-04-26 13:24:37

+0

希望我在幾個小時前找到了這個。 – smparkes 2011-06-03 02:02:12

0

嘗試調用該行reloadRowsAtIndexPaths:withRowAnimation:正在編輯。 (我不確定這是否會擾亂你的文本字段的第一響應者狀態。)

+0

是的,不幸的是,這確實弄亂了第一響應者。 – 2011-04-13 13:01:13