【问题标题】:Image size same for all device on UITableview cellUITableview 单元格上所有设备的图像大小相同
【发布时间】:2017-09-17 04:19:42
【问题描述】:

我在表格视图中有静态单元格。在它们中,我有一个左侧尺寸的图像视图和右侧的一个标签。我也使用了自动布局。我的问题是:

所有设备的图像大小看起来都相同。这意味着如果 iphone 5s 的图像大小为 50 X 50,那么对于 iphone 6plus,它应该显示为 100 X 100。但它只显示 50 X 50。

【问题讨论】:

  • 如果操作正确,50 像素的图像将在所有 iphone 中显示为 50 像素。质量会提高以匹配 iPhone 质量,但图像尺寸仍应相同(假设我理解正确)
  • 一个选项是只在您的单元格中设置尾随和前导以及顶部和底部边缘约束。
  • 您是否在资产文件夹中添加了图像?还是您为 imageview 设置了高度和宽度限制?

标签: ios image-size


【解决方案1】:

您在该单元格中使用了哪些约束?如果您使用 50 的高度限制,您的图像将始终为 50。

您可能希望图像为每个设备的特定尺寸(即相应的 50,70 和 100)。解决此问题的一种方法是使图像与单元格的顶部、底部和左侧保持一定距离,并为其指定特定的纵横比。

然后使用 tableView 委托方法来确定单元格的大小。

func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {

//if iphone 5 return x (e.g 50)
//if iphone 6 plus return y (e.g 100)

}

这样你就可以改变你的单元格大小(如果你的图像更小,我猜你需要更小,如果你的图像更大,你需要更大)并且你的图像使用上面提到的约束自动调整大小

【讨论】:

  • 这是最接近的答案。使用自动布局设置顶部、底部、尾随和前导约束,然后 ^tableView.heightForRow 委托方法将允许您的 imageView 根据运行应用程序的设备调整大小,但@Khalid Afridi 的答案也有很多信息为什么你的 imageView 没有调整大小!
【解决方案2】:

如果您将 imageView 大小设置为 50x50,它将在 plus iPhone 中显示为 50x50。您正在考虑具有 1x、2x 和 3x 用于视网膜屏幕的图像。它不会改变图像视图的大小,它只会看起来不错。有关更多信息,您可以阅读此答案what is pixel and points in iPhone

但如果您想在 iPhone plus 等更大的设备中更改 Image View 的大小,那么您必须使用 size 类,您可以在其中根据屏幕大小或方向配置、删除或添加约束

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-30
    • 1970-01-01
    • 2017-01-08
    • 2016-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多