2016-02-12 43 views
0

我正在开发允许用户像instagram一样分享照片的应用程序。用户可以发布带或不带标题的照片,因此标题可能为空,照片仍会发布到其供稿中。我的客户希望在标题为空时删除视图,并使用带有自动布局的uitableview单元格来显示帖子。当我试图将captionview高度约束连接到我的视图控制器时,它给我一个错误,它说约束插座不能连接到重复内容。所以,我试图在我的代码中做到这一点,但它并没有改变任何东西。如何以编程方式更改uitableviewcell的子视图?

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的高度?

回答

0

相关信息here

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

要么有两种不同样式的单元格,并根据数据可用性选择要脱离的单元格之一,要么添加约束条件以便可以将标签高度折叠为零。

+0

因此,要做到这一点的唯一方法是通过对细胞产生的子类?你能给我任何相关的链接,我该怎么做? –

+0

这是你应该做的方式,用标签你的方法可以工作,但它不是一个很好的解决方案 – Wain

+0

如何与viewwithtag办呢?为什么它不是一个好的解决方案? –

0

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

像为:

@IBOutlet VAR captionViewHeightConstraint:NSLayoutConstraint! captionViewHeightConstraint.constant = 0

相关问题