2014-11-21 61 views
0

我有一個故事板我保持這是一個UITableViewController用原型單元格從UITableView中刪除一個靜態UIView

UITableView設置爲使用動態原型並具有2個單元格。

在這兩個單元格的上方插入一個UIView表格視圖。該視圖包含UIButton和另一個自定義UIView。兩者都有限制。效果是我們有一個表格視圖,上面有一個按鈕。

現在,在某些情況下,我們希望刪除該按鈕並讓表格視圖的其餘部分在UI中向上移動。我可以刪除該按鈕 - 本身或通過刪除該父母UIView,但我似乎無法得到該表來更改原型單元格的位置。

懷着希望說清楚,我的文檔大綱如下:

  • 表視圖
    • 視圖(buttonContainerView下面提到)
      • 的UIButton
      • 視圖(子視圖下面提到)
      • 限制條件
    • 原型小區1
    • 原型小區2

我曾嘗試幾種不同的方法,以除去按鈕。閱讀後,從超級視圖中移除它也會消除約束,這就是我現在使用的方法。

[self.buttonContainerView removeFromSuperview]; 

我試過刪除按鈕,子視圖和容器視圖。我也嘗試明確地刪除約束,然後刪除視圖。這些似乎都沒有工作。

我也嘗試了上面的調用setNeedsLayout和setNeedsUpdateConstraints對錶視圖,以及視圖上的setNeedsDisplay。

我也嘗試將行高設置爲0爲第一個視圖,但事實證明它不是UITableViewCell,所以這也不起作用。

當然,如果我從故事板中刪除該容器視圖,那麼原型單元格確實會出現在UI中他們應該在的位置。

你能感覺到眩暈嗎?

我還有什麼可以在這裏丟失,有效地刪除頂部視圖?

+0

經過一天的思考,我傾向於將該子UIView(buttonContainerView)轉換爲原型單元格,並處理tableView:heightForRowAtIndexPath + tableView:cellForRowAtIndexPath中的隱藏狀態。 – Mattio 2014-11-23 02:02:34

回答

1

我沒有意識到的是我的設置是帶有表頭的UITableView。要刪除它並修復間距問題,我只需要在viewWillAppear:中設置self.tableView.tableHeaderView = nil

相關問題