自動調整很簡單 - 想象它就像一個網頁。網頁內容「流動」,它佔用了瀏覽器窗口給它的空間。 Autoresizing是一樣的。有「口罩」告訴UIKit你的內容如何適應不同的幀大小。例如,如果您希望視圖從右側縮小或增長(例如,如果它是左對齊的內容,如表格單元格),則可以像這樣設置遮罩:
cell.autoresizingMask = UIViewAutoresizingFlexibleRightMargin;
也自動調整大小就像一個按位或運算,所以如果你想讓它從右邊長(如上所述),而且還從底部,你會「或」兩個共同成長。
cell.autoresizingMask = (UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin);
在,這並不爲你工作的情況下(例如,你希望把太多的屏幕上,並且需要刪除某些元素等,或要動畫比默認不知何故不同)考慮在UITableViewCell中使用預先存在的方法調用。從documentation:
- (void)willTransitionToState:(UITableViewCellStateMask)state
這將被稱爲細胞改變狀態前右(正>編輯或其他),所以如果你需要做任何特殊處理動畫編輯狀態,這是你這樣做的機會。的文檔狀態:
的UITableViewCell的
子類可以 實現此方法,以動畫時,它 正在改變狀態的單元附加 變化。每當單元格 在狀態之間轉換時,如 從正常狀態(默認)到 編輯模式,UITableViewCell 都會調用此方法。自定義單元格可以設置爲 並定位 以新狀態顯示的任何新視圖。然後,單元格 接收layoutSubviews消息 (UIView),其中它可以將這些新視圖定位在它們在新狀態的最終 位置中的 。 當覆蓋此方法時,子類必須始終調用超類。覆蓋此方法。
好,所以這需要我做「髒」的工作。我不想用這個,因爲我有7種不同類型的細胞,所以我不得不做很多定製。但如果一切都失敗了,我會再看看它。但是,如果你能夠對autoresizingMask「途徑」進行一些闡述,那將會很好。它不適合我。 – 2010-10-12 13:47:29
我添加了更多關於自動調整的信息。另外,請嘗試查看Apple的AdvancedTableCells示例代碼 - http://developer.apple.com/library/ios/samplecode/AdvancedTableViewCells/Introduction/Intro.html#//apple_ref/doc/uid/DTS40009111 – makdad 2010-10-13 08:36:00
嘿謝謝autoresizing的東西,我想我需要使用你的第一個解決方案本身,很多雜亂的表格單元格。 – 2010-10-13 11:28:29