2013-03-07 51 views
1

我有一個簡單的沒有縮進(UITableViewStylePlain)的UITableView基本(UITableViewCellStyleDefault)UITableViewCells中的iOS 6.1。當它進入編輯模式時,它的單元格按我希望的那樣縮進。但是,只有當所有的單元格標籤都很短時:如果一個單元格的長度足以在右側修剪,則表格單元格中的任何一個都不會縮進。UITableViewCells長標籤將在編輯模式

例如:

  1. 表與一個細胞:(SHORT)=>凹痕即作品
  2. 表具有兩個細胞:(LONG)(SHORT)=>既不細胞縮進,即不工作

什麼簡單的步驟可以糾正這種情況?例如,看起來好像我無法在Xcode中的基本即非自定義表格視圖單元上更改預設大小屬性。

UPDATE:下面是進一步說明問題兩個圖像(1:正確的情況下,第二:不正確的情況下):

enter image description here enter image description here

UPDATE:它原來,根本原因不是標籤的長度。相反,它似乎是關於我的異步。 KVO處理與此表格視圖有關。我的tableView:cellForRowAtIndexPath:在單元的底層託管(核心數據)對象上調用getter。似乎受管理對象的默認獲取者依次調用他們自己的setters,可能在實現對象時。由於我的KVO設置的方式,導致另一個電話tableView:cellForRowAtIndexPath:。正因爲如此,只有第二個案件涉及KVO通知和隨後的遞歸調用可能會導致問題(這在任何情況下似乎有點奇怪)...

+0

您可以發佈任何圖像,描述以及您的問題。 – Ankit 2013-03-07 11:51:46

+0

@Ankit thx您的評論。我添加了兩個圖像。希望這可以幫助。 – Drux 2013-03-07 15:41:02

回答

0

我已經能夠通過「預取」底層託管對象在表視圖的數據源的構造函數中。我通過訪問表格單元格中顯示的屬性來完成此操作。這樣,第一志願通知的情況下引發的,他們不能導致tableView:cellForRowAtIndexPath:不必要的遞歸調用。

如果有一個更好的(更優雅)的方式來處理這種情況,我還是有興趣瞭解一下吧。