在storyboard中有一种方法可以从布局中删除隐藏的项目吗?

时间:2013-02-21 17:29:30

标签: ios objective-c

我有一个带有图像缩略图的表格单元格(根据该行是否有图像可以隐藏或不隐藏)和右侧的textView。

有没有将textView向左展开以覆盖图像在隐藏而不需要代码时所用的区域?

或者用其他方式来表达它:在html中你隐藏了(visibility:hidden;)并从布局中删除了(display:none;),看来view.hidden = NO会使css等效于隐藏;我希望css等效于从布局中删除。

这是否有无代码解决方案?

由于

2 个答案:

答案 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),则必须处理它们。