如何在tableview单元格中重新定位隐藏视图的标签?

时间:2016-10-23 10:11:56

标签: ios swift autolayout constraints tableview

This is my resulting page. Here instead of using n/a for labels which donot have value, I want to hide them and move the other labels likewise and also adjust the UITableViewCell height likewise. Is there any other way to attain it without connecting the height and top constraint and changing them in runtime? Changing constraint in runtime shows many warnings and doesn't work in every case.

这里不是使用不适用于没有价值的标签,我想隐藏它们并同样移动其他标签,同样调整UITableViewCell高度。有没有其他方法可以实现它而无需连接高度和顶部约束并在运行时更改它们?在运行时更改约束会显示许多警告,并且在每种情况下都不起作用。有没有办法使用autolayout本身呢?

1 个答案:

答案 0 :(得分:0)

我也遇到过这样的问题,解决方法是以编程方式添加这些标签。我理解由于提供给我们的视觉效果,自动布局使其更容易。但是,当您必须以您要求的方式动态设置整个表时,需要以编程方式完成。

最好的方法是删除标签并添加一个UIView占用标签占据所需的整个空间。给出左,上,右和下限制。根据数据和设备的不同,不要提供动态的高度和宽度。

使用适当的硬编码CGRect框架在代码中创建UIImageView和UILabel,并在单元格视图中插入这些视图,以便使用迭代显示每个数据。这将在视图中插入数据。下一个问题是动态单元高度。在heightForRowAtIndexPath中,UITableViewDelegate的委托方法以编程方式计算要添加到单元格中的标签数量,以及您在UITableViewDataSource的cellForRowAtIndexPath方法中给出的高度的多个。您需要在方法heightForRowAtIndexPath中返回CGFloat值,因此添加上面获得的值以及您在故事板中提供的常量值(公司名称,联系人美国标签和底部的社交媒体栏)。

在这里,您可以在设备上获得所需的显示,但是要在视图中添加的UIView中的任何标签文本都大于视图本身的宽度,它们将被截断直到该点。如果你想让这个标签成为双线,你最终还是要增加单元高度,这将需要另外一种方法,因为标签的宽度因设备而异。并且以编程方式的下一个视图将与之前的双线标签重叠。