如何以编程方式更改uitableviewcell的子视图?

时间:2016-02-12 06:31:35

标签: ios iphone uitableview uiview autolayout

我正在使用应用程序,允许用户分享照片,如Instagram。用户可以使用或不使用标题发布照片,因此标题可能为空,照片仍会发布到其Feed中。我的客户想要在标题为空时删除视图,并且我使用带有自动布局的uitableview单元格作为帖子。当我尝试将captionview高度约束连接到我的viewcontroller时,它给出了一个错误,它表示 约束出口无法连接到重复内容 。所以,我试着在我的代码中做到这一点,但它并没有改变任何东西。

let captionString = object["caption"] as? String
    let captionView = cell.contentView.viewWithTag(111)

    if captionString == ""{

        captionView?.frame = CGRectMake(0 , 0, captionView!.frame.width, 0)

    }else{


        (cell.contentView.viewWithTag(12) as! UILabel).text = captionString

    }

我把上面的代码放在 tableView(tableView:UITableView,cellForRowAtIndexPath indexPath:NSIndexPath) - > UITableViewCell ,我在uitableviewcell内的每个视图中给出约束,所以如果我可以更改captionView高度,其他视图将自动调整大小。如何更改captionView的高度?

2 个答案:

答案 0 :(得分:0)

此处的相关信息:

Outlets cannot be connected to repeating content iOS

当您使用无效且无法正常工作的自动布局时,您无法设置框架。

要么有2种不同类型的单元格,要根据数据可用性选择哪一种出列,或者添加约束以便将标签高度折叠为零。

答案 1 :(得分:0)

您可以创建高度约束的出口并设置高度0

喜欢:

@IBOutlet var captionViewHeightConstraint: NSLayoutConstraint!
captionViewHeightConstraint.constant = 0
相关问题