我有一個複雜的內容UITableView。用戶可以用標準方式點擊編輯按鈕來編輯(重新排列和刪除)單元格。但我希望單元格在「編輯」模式下看起來不同。當用戶點擊編輯按鈕時,重做UITableView佈局?
問:
如何改變UITableView的佈局在編輯模式下,包括更改行高?
到目前爲止,這是我所:
編輯按鈕發送WillTransitionToState/DidTransitionToState消息發送到每個UITableViewCell的(UITVC)。我已經對UITVC進行了分類,並對每個單元格內的這些內容做出反應,根據需要隱藏,刪除和重新洗牌。但是,更改行高不在一個單元格的範圍內。
當用戶點擊編輯時,似乎沒有發送到UITableView的消息。有一個 - tableView:commitEditingStyle:forRowAtIndexPath:編輯特定行後發送到數據源。
裏面heightForRowAtIndexPath,我可以使用tableView.editing屬性查詢當前模式,並適當報告高度。我可以通過調用[tableView reloadData]來觸發表重新流動,包括重新計算高度。但是,我什麼時候打電話?
我可以將信息從WillTransitionToState中的單元發送回「擁有」表視圖,並在我獲取它們時調用reloadData。但這聽起來很脆弱,必須有更好的辦法。
按預期工作。 (BOOL)編輯動畫:(布爾)動畫,但我使用 - (UITableView *)tableView setEditing:(布爾)編輯動畫:(布爾) )動畫,這當然不起作用。因此,請始終在文檔中仔細檢查方法簽名。 :) – Jaanus
reloadData殺死很好的編輯動畫死... –