修改单元格子视图的框架

时间:2015-10-23 13:23:52

标签: ios uitableview cell frame custom-cell

我的表格视图由包含多个子视图的自定义单元格组成 让我们调用其中两个子视图AView和BView。它们并排放置。
在某些情况下,我不想显示BView(我将其隐藏)。但这意味着我应该将Aview扩大到BView的宽度。

我试图在我的数据源的- tableView:cellForRowAtIndexPath:方法中更改AView的框架。没有结果。然后我试图在我的代表的– tableView:willDisplayCell:forRowAtIndexPath:中更改它。再次失败。
在这两种情况下,AView都与Storyboard中的大小相同。

那么,我应该在哪里更改AView的框架?

1 个答案:

答案 0 :(得分:2)

有很多方法可以做到这一点。我认为非常干净的一个建议是:

  1. 子类UITableViewCell ...例如将其称为MyCell。
  2. IBOutlet中创建一个链接到BView宽度约束的MyCell。称之为BViewWidthConstraint。
  3. MyCell中创建以下函数:

    func hideBView() -> void {
        self.BViewWidthConstraint.constant = 0
    }
    
  4. cellForRowAtIndexPath中,您现在可以:

    if needToHideBView {
        cell.hideBView()
    } 
    
  5. 我假设你正在使用Autolayout并且你正确设置它!