【问题标题】:Centre ImageView horizontally inside a TableViewCell在 UITableViewCell 内水平居中图像视图
【发布时间】:2017-02-26 09:37:15
【问题描述】:

我在将图像视图放在单元格中间时遇到了一点问题。

我有一个 tableView 单元格: 左对齐的标签 一个 UIImageView(位于屏幕中间但不与 AccessoryView 或 Accessory 重叠) 可选的 AccessoryView 或 Accessory。

然后我有一个标题单元格: 左对齐的标签 一个 UIImageView(位于屏幕中间)

问题是我希望所有图像都水平对齐(包括标题),但 AccessoryView/Accessory 会影响我的计算。图像视图是 ScaleAspectFit。目前我已将宽度设置为 contentView 的全宽。

有人大致知道我将如何完成这项工作吗?我读过人们说要在没有 AccessoryView 或 Accessory 的单元格中放入一个空视图,但这对标题没有帮助?其他人有硬编码的值?

非常感谢

【问题讨论】:

  • 您能否更清楚地了解您要做什么?如果可能的话附上截图。我理解对了吗?您想对齐所有图像视图,包括标题和普通单元格,但不希望图像出现在辅助视图后面?
  • 是的,对不起,基本上我想让所有图像都出现在一条直线上,包括标题单元格。不重叠 AccessoryView 或 Accessory。
  • 你可以简单地将所有的imageView对齐到它的superView,在左边的标签上添加一个可以大于等于一个值的前导,并为imageView设置一个宽度。 (当然,您还必须根据需要添加垂直约束!)编辑:您还必须添加一个大于附件视图通常出现的位置的尾随。

标签: ios uitableview alignment tableviewcell accessoryview


【解决方案1】:

在您的单元格布局子视图之后更改 imageView 框架 x 原点。只需将其添加到您的单元格定义中。

override func layoutSubviews() {
    let screenWidth = UIScreen.main.bounds.width
    let imageViewWidth = self.imageView?.frame.width
    let imageViewOriginX = (screenWidth - imageViewWidth!) / 2
    self.customImageView.frame.origin.x = imageViewOriginX 
}

【讨论】:

    猜你喜欢
    • 2012-06-14
    • 2015-06-21
    • 1970-01-01
    • 2019-10-21
    • 1970-01-01
    • 1970-01-01
    • 2020-07-27
    相关资源
    最近更新 更多