自动布局下的图片比例问题

本文介绍如何在自定义Cell中合理设置图片和文字的布局,包括解决图片超出Cell边界及UILabel无法正常换行等问题,并提供了具体的代码实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如图:
   
 
以一个自定义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的一些第三方框架,还是很有爱的哦!!!

 

转载于:https://www.cnblogs.com/vegetable-bird/p/5108023.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值