2013-03-18 116 views
0

快速搜索後,我無法找到我的問題的答案。UITableViewCell編輯縮進

這個問題的答案:How to reformat a custom UITableViewCell 沒有爲我工作。

當我的tableView進入編輯模式時,單元格的subViews縮進到右側並關閉單元格視圖。請參閱附加的屏幕截圖。

我需要減少縮進,以便它們移動但不超出cell。或者,當他們進入編輯模式時,單元的subViews向左移動一點,使它們保持在單元內。

我設計了這些UITableViewCellstoryboard。我改變了故事板中的縮進LevelWidth,但它們沒有效果。

更新:新增截圖答案之後,從氯化鈉

普通模式: Normal mode

編輯模式:從氯化鈉答案後 Edit mode

變化 After Answer from NaCl

+1

你有沒有試圖爲標籤和按鈕的「自動調整大小」選項已經從右邊距固定的距離?或者你使用Autolayout? – 2013-03-18 13:03:57

+0

@MartinR是在故事板中標記了自動調整大小。 – 2013-03-18 13:05:37

+0

@MartinR正如我剛纔提到的一個問題,沒有幫助,有類似的建議。請再次閱讀該問題。 – 2013-03-18 13:07:02

回答

1

簡單的方法就是在你的自定義單元格類 - 在layoutSubviews方法中調整你的cell.view.frame

if (self.isEditing) { 

// then shift cell frame to left side 
} 
else { 

// then shift cell frame to right side 
} 
+0

我試過這個,但是這造成了很多問題。方法layoutSubviews在單元格中的每個更改都會調用。因此,如果按下刪除按鈕,確認按鈕出現,如果我沒有確認(再次按下刪除按鈕「 - 」符號),子視圖再次移動到左側......並且在一些重複之後它創建一個混亂。 – 2013-03-18 12:31:12

+1

然後添加一個標誌(isHavingIndetation),如果條件在上面的代碼中使用這個標誌。一旦你的單元得到了解釋,將它設置爲啓用,所以下次不允許再次設置框架。當你的表格變得正常(完成buttton事件)時,再次禁用該標誌。 – Mrunal 2013-03-18 13:07:40

+1

好吧!我添加了一個標誌並設置了單元格的所有子視圖的框架。現在它工作了。謝謝! – 2013-03-18 13:30:35

7

使用此

- (BOOL)tableView:(UITableView *)tableView shouldIndentWhileEditingRowAtIndexPath:(NSIndexPath *)indexPath 
{ 
    return NO; 
} 
+0

我試過這個,現在單元格沒有調整大小/縮進,但子視圖(UILables + UIButtons)仍然縮進並退出了單元格邊界。 – 2013-03-18 12:22:58