我有一个带有图像缩略图的表格单元格(根据该行是否有图像可以隐藏或不隐藏)和右侧的textView。
有没有将textView向左展开以覆盖图像在隐藏而不需要代码时所用的区域?
或者用其他方式来表达它:在html中你隐藏了(visibility:hidden;)并从布局中删除了(display:none;),看来view.hidden = NO会使css等效于隐藏;我希望css等效于从布局中删除。
这是否有无代码解决方案?
由于
答案 0 :(得分:2)
是的,您可以在具有布局约束的代码中执行此操作。如果文本视图和图像视图之间存在水平间距约束,则可以在IB中创建IBOutlet,然后在代码中更改其常量的值。因此,在cellForRowAtIndexPath:中,您将使用某种if子句来测试您是否有该行的图像:
if (indexPath.row %2 == 0) {
cell.iv.hidden = YES;
cell.imageViewToTextViewConstraint.constant = -48;
}else{
cell.iv.hidden = NO;
cell.imageViewToTextViewConstraint.constant = 8;
}
iv是我单元格图像视图的出口,宽度为48,因此将约束设置为-48基本上将文本视图扩展到图像视图左侧所在的位置(图像视图仍然存在,其中只是隐藏)。在这个例子中,我只是将偶数行设置为没有图像,奇数行具有我在IB中设置的行。
答案 1 :(得分:1)
没有。 HTML / CSS布局非常先进,您必须在设置其内容时使用代码来处理textView框架(如果您使用NSLayoutConstraint
),则必须处理它们。