自动布局 - 带有 ImageView 的 UITableViewCell - 边距?

Posted

技术标签:

【中文标题】自动布局 - 带有 ImageView 的 UITableViewCell - 边距?【英文标题】:Autolayout - UITableViewCell with ImageView - Margin? 【发布时间】:2015-04-16 08:45:25 【问题描述】:

当我尝试在单元格中使用 UIImageView 制作左/上/下边距时,我遇到了问题。它不在乎我将尝试设置为顶部/底部/左侧空间,我将始终得到相同的结果 - >所有图像都没有任何边距。

我有一个固定的高度和宽度,我只想添加顶部/左边距。

有没有办法强制自动布局在这里添加边距?

提前感谢您提供的任何提示。 编辑: 谢谢你的回答。生病尝试了它,但它仍然无法正常工作。单元格和图像之间总是没有边距:

这是我的限制条件。 (我只需要 8px 作为 superView 的空间)

【问题讨论】:

让自动布局在 UITableViewCell 上工作是为了确保您有约束将每个子视图固定在所有侧面 - 也就是说,每个子视图应该具有前导、顶部、尾随和底部约束。检查链接类似问题***.com/questions/29231390/… 【参考方案1】:

实际上,我无法完全解决这个问题。但我相信如果你在你的代码中尝试这些东西,它会起作用的。

Using-auto-layout-in-uitableview-for-dynamic-cell-layouts-variable-row-heights

编辑:

将新的 UIImageView 大小和位置设置为下面屏幕截图中显示的值。

现在选择 UIImageView 并添加以下约束。

leadingtopbottom 设置为 20。 将 widthheight 设置为 100。 确保未选中限制到边距。 点击添加 5 个约束按钮。

选择image view 以显示其约束,然后选择其底部 约束进行编辑。在属性编辑器中,将其 Relation 更改为 Greater Than or Equal 并将其 Priority 更改为 999。

接下来,选择图像视图以显示其约束,然后选择其高度约束。在属性编辑器中,将其 Priority 更改为 999。 同样,选择图像视图的 width 约束并将其 Priority 更改为 999。

要设置以下约束,你会得到答案。

【讨论】:

谢谢,但它不起作用。我编辑了我的开始帖子 @derdida,你确定你设置了我在帖子中显示的正确约束吗?因为这里工作正常。 @derdida,能否请您检查一下您的UIImageView 模式是否为Aspect Fit 谢谢 - 已经检查并将其更改为适合方面 - 和同样的问题。你可以上传(github?)你的项目,所以我可以看看吗? 所有约束都应该没问题,我多次使用自动布局,通常它工作正常 - 这可能是一个问题,因为我正在做一个通用应用程序吗?在我看来,有一些(灰色的)约束。【参考方案2】:

将此代码添加到cellForRowAtIndexPath

 UIView* separatorLineView = [[UIView alloc] initWithFrame:CGRectZero];/// change size as you need.
    CGRect frame = separatorLineView.frame;
    frame.size.height = 5.0;
    frame.size.width = tableView.frame.size.width;
    separatorLineView.frame = frame;
    separatorLineView.backgroundColor = [UIColor redColor];

    [cell.contentView addSubview:separatorLineView];
    return cell;

按照这些链接Autolayout 或Autolayout programatically

现在使用这些约束

故事板

模拟器

这可能对你有帮助:)

【讨论】:

这不是一个好的解决方案 - 它应该只适用于自动布局。

以上是关于自动布局 - 带有 ImageView 的 UITableViewCell - 边距?的主要内容,如果未能解决你的问题,请参考以下文章

自动更新自动布局中的框架[关闭]

带有imageview的可点击布局的android选择器

在 iOS 6 上使用自动布局在 ScrollView 中嵌入 ImageView

swift 具有自动布局高度的ImageView

如何在 ScrollView 中为 ImageView 设置自动布局约束?

表格视图单元格中的 ImageView 切断标签(自动布局)[关闭]