UITableview单元

时间:2017-04-20 13:33:44

标签: ios image-size

我在tableview中有静态单元格。在其中我有一个图像视图左侧大小和一个标签右侧。我也用过自动布局。我的问题是:

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

2 个答案:

答案 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)中更改图像视图的大小,则必须使用尺寸等级,您可以根据屏幕尺寸或方向配置,删除或添加约束