Ios UITableview单元上所有设备的图像大小相同
我在tableview中有静态单元格。在它们中,我有一个左边大小的图像视图和一个右边的标签。我还使用了自动布局。我的问题是:Ios UITableview单元上所有设备的图像大小相同,ios,image-size,Ios,Image Size,我在tableview中有静态单元格。在它们中,我有一个左边大小的图像视图和一个右边的标签。我还使用了自动布局。我的问题是: 所有设备的图像大小看起来都相同。这意味着如果iphone 5s的图像大小为50 X 50,那么iphone 6plus的图像大小应为100 X 100。但它只显示50 X 50。您在该单元格中使用了哪些约束?如果使用50的高度约束,则图像将始终为50 您可能希望图像为每个设备的特定大小(即相应的50、70和100)。一种方法是使图像与单元格的顶部、底部和左侧保持一定距离,
所有设备的图像大小看起来都相同。这意味着如果iphone 5s的图像大小为50 X 50,那么iphone 6plus的图像大小应为100 X 100。但它只显示50 X 50。您在该单元格中使用了哪些约束?如果使用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)
}
通过这种方式,您可以更改单元格大小(我猜,如果图像越来越大,您的图像就需要越来越小),并且您的图像会使用上述约束自动调整大小您在该单元格中使用的约束是什么?如果使用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)
}
通过这种方式,你可以改变你的单元格大小(我猜如果你的图像越来越大,你就需要越来越小),并且你的图像会根据上面提到的限制自动调整大小如果你将imageView的大小设置为50x50,那么iPhone上会显示50x50。你可以想象一下,视网膜屏幕上有1倍、2倍和3倍的图像。它不会改变图像视图的大小,只是看起来不错。有关更多信息,请阅读此答案
但是,如果您想在较大的设备(如iPhone plus)中更改图像视图的大小,则必须使用size类,在该类中,您可以根据屏幕大小或方向配置、删除或添加约束如果将imageView大小设置为50x50,则在plus iPhone中会显示50x50。你可以想象一下,视网膜屏幕上有1倍、2倍和3倍的图像。它不会改变图像视图的大小,只是看起来不错。有关更多信息,请阅读此答案
但是,如果您想在较大的设备(如iPhone plus)中更改图像视图的大小,则必须使用size类,在该类中,您可以根据屏幕大小或方向配置、删除或添加约束如果操作正确,所有iPhone中的50px图像将显示为50px。质量将提高,以匹配iPhone的质量,但图像大小仍应相同(假设我理解正确),其中一个选项是仅在单元格中设置尾随和前导以及上下边缘约束。是否在“资源”文件夹中添加图像?或者您是否为imageview设置了高度和宽度限制?如果设置正确,所有iPhone中的50px图像都将显示为50px。质量将提高,以匹配iPhone的质量,但图像大小仍应相同(假设我理解正确),其中一个选项是仅在单元格中设置尾随和前导以及上下边缘约束。是否在“资源”文件夹中添加图像?或者您是否为imageview设置了高度和宽度限制?这是最接近的答案。使用autolayout设置顶部、底部、尾部和前导约束,然后使用^tableView.heightForRow委托方法将允许您的imageView根据运行应用程序的设备调整大小,但是@Khalid Afridi的回答也提供了有关imageView不调整大小的重要信息!这是最接近的答案。使用autolayout设置顶部、底部、尾部和前导约束,然后使用^tableView.heightForRow委托方法将允许您的imageView根据运行应用程序的设备调整大小,但是@Khalid Afridi的回答也提供了有关imageView不调整大小的重要信息!