iOS Masonry适配UILabel 多行问题

创建一个label , 想要自动换行代码如下

      self.titleL.numberOfLines = 0;

可用masonry适配的时候,换行消失了(需求是字体居中 自动换行)

      self.titleL.numberOfLines = 0;
    
    __weak __typeof(&*self)weakSelf = self;
    [self.titleL mas_makeConstraints:^(MASConstraintMaker *make) {
        
        
        make.center.equalTo(weakSelf);

    }];

解决办法

其实代码没有错误,只是因为,在用masonry适配的时候,label自适应,遇到多行的情况,label不知道应该显示多大的长度,所以这个时候你需要告诉他 你应该显示多长,当达到这个长度的时候,你需要换行操作

如下

//核心
self.titleL.preferredMaxLayoutWidth = (self.contentView.frame.size.width - 5 * 2);
    
    [self.titleL setContentHuggingPriority:UILayoutPriorityRequired forAxis:UILayoutConstraintAxisVertical];
    
      self.titleL.numberOfLines = 0;
    
  
    __weak __typeof(&*self)weakSelf = self;
    [self.titleL mas_makeConstraints:^(MASConstraintMaker *make) {
        
        
        make.center.equalTo(weakSelf);
        
        
        
    }];


你可能感兴趣的:(iOS Masonry适配UILabel 多行问题)