2011-11-20 47 views
1

我的自定義單元格有問題。
我的細胞的結構類似於本圖片:
enter image description here在編輯模式下避免單元格自動調整iPhone

灰色視圖= cell.contentView
橙視圖=按鈕加入作爲一個子視圖的內容查看
黃色視圖=標籤添加作爲子視圖的內容查看
藍視圖=圖像視圖添加作爲子視圖的內容查看
綠色視圖=附屬視圖

的問題是,當我切換編輯到的tableView,我的細胞縮進隱藏附件查看和移動所有其他的東西。我想避免這個。
當我切換編輯模式時,我的單元格不能移動它的內容,編輯控件(減去左邊的紅色按鈕)必須取代contentView中的按鈕,最後一個應該隱藏自己。

我試過tableView:shouldIndentWhileEditingRowAtIndexPath:方法沒有成功,因爲我的tableView是普通的。我也嘗試覆蓋willTransitionToState:方法,但我不知道如何去做我想要的。

有人可以幫助我嗎?
非常感謝!

回答

3

你是如何將子視圖添加到單元格的?如果直接將它們添加到單元格而不是將它們添加到內容視圖,它們將不會移動。它是在單元轉換到編輯模式時調整大小的內容視圖。

如果您想要隱藏某些子視圖,您應該在單元格子類中覆蓋setEditing:animated:並根據需要隱藏/顯示。

您可能還需要添加子視圖,使其低於視圖層次結構中的contentView,或者在完成之後使用bringSubviewToFront:方法將內容視圖置頂。

+0

是的,我已經將它們添加到contentView中,因爲我知道這是最好的方法......但是,我可以直接將它們添加到單元格嗎? – matteodv

+0

你的確可以。內容視圖是「最好的方式」,因爲它可以讓你調整大小和重新排列,所以對你來說,它實際上並不是最好的方式! – jrturton

+0

謝謝...我馬上試試... – matteodv

2

如果你真的不想要的細胞來調整,你可以實現-layoutSubviews正是如此:

-(void)layoutSubviews 
{ 
    if ([self isEditing] == NO) { 
     // Lay out subviews normally. 
    } 
} 

當你進入編輯模式,-layoutSubviews不會遵循勾畫出你的觀點的代碼路徑。這假設你已經分類了UITableViewCell。

相關問題