ios-UILabel的自动换行

本文介绍了一种优化UILabel自动换行的方法,通过设置preferredMaxLayoutWidth属性,避免了计算文本宽度可能出现的问题,确保了UILabel在UITableViewCells中的正确显示。
摘要由CSDN通过智能技术生成

以前一直没发现有这么个属性,但是现在看到了就记录下,我们之前换行的话可能都是用计算这个文本的宽和高,然后指定相应的宽度,然后再去设置numberOfLines = 0。这样设置的话把label放到tableViewCell中有的时候可能会出现计算错误的情况,所以我们最好去使用preferredMaxLayoutWidth,这个就是我们指定约束这个label的宽度来进行设置的。我们可以这么做,在使用的时候要先把UILabel的label.translatesAutoresizingMaskIntoConstraints = false 这个给设置上。表示使用autoLayout来布局。

//可以在参数中进行赋值,如果我们没有指定color和fontSize的值就用默认的,这里多加了一个参数就是screenInset,代表的是距离屏幕的左边右边的边距
    convenience init(title:String,color:UIColor = UIColor.darkGray,fontSize:CGFloat = 13,screentInset:CGFloat = 0)
    {
        self.init()
        
        textColor = color
        
        font = UIFont.systemFont(ofSize: fontSize)
        
        text = title
        
        //设置行数没有限制,想要换行就要设置有宽度的限制
        numberOfLines = 0
        
          preferredMaxLayoutWidth = UIScreen.main.bounds.size.width - CGFloat(2*screentInset)
          textAlignment = .left

    }


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值