2017-04-20 90 views
0

我有一个tableview中的静态单元格。在他们中,我有一个图像视图,剩下的尺寸和一个标签右侧。我也使用了自动布局。我的问题是:图像大小相同的UITableview单元上的所有设备

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

+0

如果正确完成50px图像将在所有iphones中显示为50 px。质量将会提高以符合iPhone的质量,但图像尺寸仍应该相同(假设我理解正确) – logixologist

+0

一种选择是只在您的手机中设置拖尾和前端以及顶部和底部边缘限制。 –

+0

您是否在资产文件夹中添加图片?或者您是否对imageview设置了高度和宽度约束? – KKRocks

回答

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) 

} 

这样你重新改变你的细胞大小(即时猜测你需要更小,如果你的形象是较小的,更大,如果你的形象是大)和图像自动调整大小,自动使用上面

提到的限制
+0

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

1

如果您将imageView尺寸设置为50x50,则会在iPhone手机中显示50x50。你正在考虑对于视网膜屏幕有1x,2x和3x的图像。它不会改变图像视图的大小,它只会看起来不错。欲了解更多信息,你可以阅读这个答案what is pixel and points in iPhone

但如果你想改变更大的设备,如iPhone加图像视图的大小,那么你必须使用大小类,您可以配置,删除或添加基于屏幕的约束大小或方向

相关问题