UILabel 让文字置顶显示

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

UILabel 让文字置顶显示_第1张图片
置顶前

解决办法:我们可以通过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];
}

效果图

UILabel 让文字置顶显示_第2张图片
置顶后

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

UILabel 让文字置顶显示_第3张图片
置顶前后frame对比

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

-------------------------------- 2018年7月16日更新 --------------------------------

注意注意!!!

笔者在近期开通了个人公众号,主要分享编程,读书笔记,思考类的文章。

  • 编程类文章:包括笔者以前发布的精选技术文章,以及后续发布的技术文章(以原创为主),并且逐渐脱离 iOS 的内容,将侧重点会转移到提高编程能力的方向上。
  • 读书笔记类文章:分享编程类思考类心理类职场类书籍的读书笔记。
  • 思考类文章:分享笔者平时在技术上生活上的思考。

因为公众号每天发布的消息数有限制,所以到目前为止还没有将所有过去的精选文章都发布在公众号上,后续会逐步发布的。

而且因为各大博客平台的各种限制,后面还会在公众号上发布一些短小精干,以小见大的干货文章哦~

扫下方的公众号二维码并点击关注,期待与您的共同成长~

公众号:程序员维他命

你可能感兴趣的:(UILabel 让文字置顶显示)