2011-11-04 78 views
1

我爲我的應用程序創建了一個MultilineCell,它首先顯示一個由1-n行文本組成的UILabel,另一個UILabel帶有一行文本。 要處理相應的UITableView進入編輯模式,我在覆蓋的-layoutSubviews中檢查self.editing並相應地調整尺寸。這會捕獲可能由從左側的刪除旋鈕和/或右側的刪除按鈕導致的佈局中的所有更改。當UITableView進入編輯模式時調整UITableViewCells的大小

但是,有時,編輯模式下的其他小部件會導致多行標籤中的文本以包含新行的方式進行換行。當我着手調整-heightForTableRowAtIndexPath:在編輯模式處於活動狀態時以不同方式計算高度時,我注意到-heightForTableRowAtIndexPath:在tableView的編輯模式更改時不會被調用。深入研究UITableViewDelegate,我只找到了處理單個行編輯的方法。但是我正在尋找的是一種在UITableView作爲整體進入或離開編輯模式時得到通知的方式,因此我可以調用-setNeedsLayout以便表格再次查詢單個單元格的高度。

回答

1

您可以覆蓋-setEditing:animated方法並在其中進行必要的設置。

+0

是的,調用'[self.tableView beginUpdates]; [self.tableView endUpdates];'在那裏做了詭計,並導致tableView再次查詢高度。 – mss

相關問題