我在tableview中有静态单元格。在其中我有一个图像视图左侧大小和一个标签右侧。我也用过自动布局。我的问题是:
所有设备的图像大小都相同。这意味着如果iphone 5s的图像尺寸为50 X 50,那么对于iphone 6plus,它应该显示为100 X 100.但它只显示50 X 50。
答案 0 :(得分: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)
}
通过这种方式,您可以更改单元格大小(如果您的图像越大,您猜测需要更小,如果您的图像更大,则需要更小),并且您的图像会自动使用上述限制自动调整大小
答案 1 :(得分:1)
如果将imageView尺寸设置为50x50,它将显示50x50加上iPhone。你会想到视网膜屏幕有1x,2x和3x的图像。它不会改变图像视图大小,只会看起来很好。有关详细信息,请阅读此答案what is pixel and points in iPhone
但如果您想在更大的设备(如iPhone plus)中更改图像视图的大小,则必须使用尺寸等级,您可以根据屏幕尺寸或方向配置,删除或添加约束