1

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

无论如何让 textView 向左扩展以覆盖图像在隐藏时使用的区域而不需要代码?

或者另一种表达方式:在 html 中,您已隐藏 (visibility:hidden;) 并从布局中删除 (display:none;),看起来 view.hidden = NO 相当于隐藏的 css; 我想要从布局中删除的css等价物。

有没有无代码解决方案?

谢谢

4

2 回答 2

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 中设置的行。

于 2013-02-21T17:53:42.230 回答
1

不,HTML / CSS 布局非常先进,NSLayoutConstraint当您设置其内容时,您必须自己处理您的 textView 框架(或使用约束),使用代码。

于 2013-02-21T17:35:23.207 回答