如图:
以一个自定义Cell为例,有图片,文字
设置图片的时候,会有一种情况是,以屏幕宽度为基准,16:9的图片效果,在自动布局的时候,我们需要设置UIIMageView的上、左、右,宽高比(16:9/4:3)
设置UILabel的时候,同样设置上,左,右,高度自适应
以上设置完毕时,在运行之后,会出现一些意想不到的问题,如:如果图片过大时,会超出cell;UILabel不能正常的换行
解决:
图片超出:设置属性 UIImageView.clipsToBounds = true 自定剪裁
图片比例问题:需要手动指定一个宽或者高是定制,然后在代码级别动态进行修改,注意修改的位置xib要在 awakeFormNib(),这个方法中修改
UILabel自动换行:需要设置属性 preferredMaxLayoutWidth = xxx ,当到达这个数值时,就会自动换行
另外在网上看到也可以这样操作
- (void)layoutSubViews
{
[super layoutSubViews];
self.label.preferredMaxLayoutWidth = self.label.bounds.size.width;
}
当UILabel已经显示到界面上的时候,宽度已经确定了,那么可以直接用这个宽度
备注:这里感觉,自动布局下的【比例】,UILabel的设置,有点坑,都需要代码介入才行,不过在动态计算高度的时候,基于autoLayout的一些第三方框架,还是很有爱的哦!!!
自动布局下的图片比例问题
原文:http://www.cnblogs.com/vegetable-bird/p/5108023.html