自动布局 - 带有 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 并添加以下约束。
将 leading、top 和 bottom 设置为 20。 将 width 和 height 设置为 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 - 边距?的主要内容,如果未能解决你的问题,请参考以下文章
在 iOS 6 上使用自动布局在 ScrollView 中嵌入 ImageView