我需要在一个宽600的cell中放一张图片,我设置图片的高是cell的宽的155/600(在xib里宽高是115),图片的宽等于图片的高。我期望的是图片的大小能够跟着cell的宽度而变化,但是运行之后发现图片的大小是可以跟着cell的宽变化,但是cell的高却是按照图片缩小前的高(115)算出来的。然后就导致cell下面空了一片。
走同样的路,发现不同的人生
从后来上传的图片上,并没看出“导致cell下面空了一片”是怎么一回事。根据你的需求:cell中放一张图片,图片的大小能够跟着cell的宽度而变化,图片的宽等于图片的高。我做了如下配置:ImageView宽高比1:1;ImageView在Cell中水平居中、垂直居中;ImageView与Cell宽度比0.8;View Mode为Aspect Fit(不然图片就变形了,也可以选其它的,你可以改变这个参数查看效果)
下图是在Storyboard中修改cell的宽度后的效果,左边宽200,右边宽100,高都是100:
不知道是否满足你的需求。。。测试基于工程https://github.com/fahadahmed/RecipePhoto,在此基础上修改为上述的配置。
如果你是把图片放在UIImageView中,并且设置了Aspect Ratio Constraint: ImageView.Width=ImageView.Height
UIImageView
Aspect Ratio Constraint
然后还设置了ImageView的高度和Cell宽度的比例,那么,Cell宽度发生变化,整个ImageView的宽、高都会变的。
所以图片高度不可能是不变的,你再检查下配置吧
然后再考虑下View Mode,以决定是按比例缩放,还是填满整个view......
Update
从后来上传的图片上,并没看出“导致cell下面空了一片”是怎么一回事。
根据你的需求:cell中放一张图片,图片的大小能够跟着cell的宽度而变化,图片的宽等于图片的高。
我做了如下配置:
ImageView宽高比1:1;ImageView在Cell中水平居中、垂直居中;ImageView与Cell宽度比0.8;View Mode为Aspect Fit(不然图片就变形了,也可以选其它的,你可以改变这个参数查看效果)
下图是在Storyboard中修改cell的宽度后的效果,左边宽200,右边宽100,高都是100:
不知道是否满足你的需求。。。
测试基于工程https://github.com/fahadahmed/RecipePhoto,在此基础上修改为上述的配置。
Old Answer
如果你是把图片放在
UIImageView
中,并且设置了Aspect Ratio Constraint
: ImageView.Width=ImageView.Height然后还设置了ImageView的高度和Cell宽度的比例,那么,Cell宽度发生变化,整个ImageView的宽、高都会变的。
所以图片高度不可能是不变的,你再检查下配置吧
然后再考虑下View Mode,以决定是按比例缩放,还是填满整个view......