2010-10-12 179 views
0

我已經子類化了一個tableview單元格並將一些標籤和圖像添加到自定義單元格中。在UITableview上刪除按鈕單元格塊定製單元格圖像

[self.contentView addSubview:lblDesc]; 
    [self.contentView addSubview:imagesToDisplay]; 

當我編輯tableView並按下「 - 」符號時,刪除按鈕出現在圖像和其他內容的頂部。

其他一些應用程序擠壓單元格的內容以容納刪除按鈕。

我該如何去做這個?

我是否需要添加一個鍵值觀察 [電池的addObserver:自forKeyPath:@ 「showingDeleteConfirmation」 選項:NSKeyValueObservingOptionNew方面:NULL];

回答

4

自動調整很簡單 - 想象它就像一個網頁。網頁內容「流動」,它佔用了瀏覽器窗口給它的空間。 Autoresizing是一樣的。有「口罩」告訴UIKit你的內容如何適應不同的幀大小。例如,如果您希望視圖從右側縮小或增長(例如,如果它是左對齊的內容,如表格單元格),則可以像這樣設置遮罩:

cell.autoresizingMask = UIViewAutoresizingFlexibleRightMargin; 

也自動調整大小就像一個按位或運算,所以如果你想讓它從右邊長(如上所述),而且還從底部,你會「或」兩個共同成長。

cell.autoresizingMask = (UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleBottomMargin); 

在,這並不爲你工作的情況下(例如,你希望把太多的屏幕上,並且需要刪除某些元素等,或要動畫比默認不知何故不同)考慮在UITableViewCell中使用預先存在的方法調用。從documentation

- (void)willTransitionToState:(UITableViewCellStateMask)state 

這將被稱爲細胞改變狀態前右(正>編輯或其他),所以如果你需要做任何特殊處理動畫編輯狀態,這是你這樣做的機會。的文檔狀態:

的UITableViewCell的

子類可以 實現此方法,以動畫時,它 正在改變狀態的單元附加 變化。每當單元格 在狀態之間轉換時,如 從正常狀態(默認)到 編輯模式,UITableViewCell 都會調用此方法。自定義單元格可以設置爲 並定位 以新狀態顯示的任何新視圖。然後,單元格 接收layoutSubviews消息 (UIView),其中它可以將這些新視圖定位在它們在新狀態的最終 位置中的 。 當覆蓋此方法時,子類必須始終調用超類。覆蓋此方法。

+0

好,所以這需要我做「髒」的工作。我不想用這個,因爲我有7種不同類型的細胞,所以我不得不做很多定製。但如果一切都失敗了,我會再看看它。但是,如果你能夠對autoresizingMask「途徑」進行一些闡述,那將會很好。它不適合我。 – 2010-10-12 13:47:29

+0

我添加了更多關於自動調整的信息。另外,請嘗試查看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

+0

嘿謝謝autoresizing的東西,我想我需要使用你的第一個解決方案本身,很多雜亂的表格單元格。 – 2010-10-13 11:28:29

0

您需要設置正確的autoresizingMask,以便在contentView更改大小時正確移動按鈕。

+0

沒有。我在我的自定義實現中添加了這個,並且在tableview委託方法中也添加了這個。但力量有所作爲。 – 2010-10-12 13:44:21

+0

確定了這個工作,我需要設置標籤和圖像的autoresizingMask。但是他們現在標籤和圖像重疊。嘗試了各種組合。 – 2010-10-12 14:30:16

相關問題