美文网首页与文字有关的
UILabel 让文字置顶显示

UILabel 让文字置顶显示

作者: J_Knight_ | 来源:发表于2016-07-04 15:25 被阅读4742次

    我们经常会遇到将Label中文字置顶,也就是将文字顶到Lable框的最顶端显示的需求,UILabel是无法对内容文字进行置顶处理的,所以,如果我们不对Label加以额外的设置,就会出现如下情况:

    置顶前

    解决办法:我们可以通过sizeToFit方法解决它:

    - (void)viewDidLoad {
    
        [super viewDidLoad];
    
    
        UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake((self.view.bounds.size.width - 200)/2, 100, 200, 150)];
    
        label.backgroundColor = [UIColor yellowColor];
    
        NSString *labelText = @"我不知道如何置顶,谁来告诉我?";
    
        [label setText:labelText];
    
        [label setNumberOfLines:0];
        
       
        //让内容置顶
        [label sizeToFit];
    
        [self.view addSubview:label];
    }
    

    效果图

    置顶后

    但是有些小伙伴会对内容置顶后的Label的frame有些顾虑,笔者也有,所以就在Label后方放置了一个和初始Label具有相同frame的红色背景,那么如果设置sizeToFit方法后,即使Label的frame有变化,我们也可以通过和红色背景的frame相对比而看出:

    置顶前后frame对比

    我们可以看到,文字内容置顶后,原Label的origin几乎没有变化,而bounds适应了文字,大小改变了。
    所以不难看出,通过sizeToFit方法,我们可以将Label的大小“刚好”紧贴文字外部,从而实现了置顶的效果。

    相关文章

      网友评论

      • BlueFriends:xib 下怎么写
        J_Knight_:@LuckyMing 这个我没有试过,我个人不太喜欢用xib
      • 健健锅:如果我想在label frame 固定,情况下 让文字与顶部对其呢
        J_Knight_:不好意思没有看到。你可以拿一个UIView垫着它,让这个labe的y始终等于0

      本文标题:UILabel 让文字置顶显示

      本文链接:https://www.haomeiwen.com/subject/gtocjttx.html