zoukankan      html  css  js  c++  java
  • iOS之UILabel自适应大小

    //初始化一个label

        self.label=[[UILabel alloc] init];

        

        //设置自动行数与字符换行

        [self.label setNumberOfLines:0];

        

        //给label设置标签

        self.label.text=@"首先,我们要明确一点,同步和异步都是在线程中使用的。在iOS开发中,比如网络请求数据时,若使用同步请求,则只有请求成功或者请求失败得到响应返回后,才能继续往下走,也就是才能访问其它资源(会阻塞了线程)。";

        

        //设置label的背景颜色

        self.label.backgroundColor=[UIColor grayColor];

        

        //初始化段落,设置段落风格

        NSMutableParagraphStyle *paragraphstyle=[[NSMutableParagraphStyle alloc]init];

        paragraphstyle.lineBreakMode=NSLineBreakByCharWrapping;

        

        //设置label的字体和段落风格

        NSDictionary *dic=@{NSFontAttributeName:self.label.font,NSParagraphStyleAttributeName:paragraphstyle.copy};

        //NSDictionary *dic=@{NSFontAttributeName:self.label.font};

        

        //计算label的真正大小,其中宽度和高度是由段落字数的多少来确定的,返回实际label的大小

       CGRect rect=[self.label.text boundingRectWithSize:CGSizeMake(self.view.frame.size.width, self.view.frame.size.height) options:NSStringDrawingUsesLineFragmentOrigin attributes:dic context:nil];

        

        //设置到屏幕顶部的距离,如果不设置就x,y都为0

        self.label.frame=CGRectMake(0, 70, rect.size.width,rect.size.height);

        [self.view addSubview:self.label];

    这是分别在6s和5s上面运行的效果

  • 相关阅读:
    First Missing Positive
    Find Minimum in Rotated Sorted Array II
    switch两种写法对比
    常用的前端JavaScript方法封装
    如何保证缓存和数据库的一致性?
    14个前端小知识
    dataTable转换特定的类
    C# MD5 32大写位加密 UTF-8编码
    另一个 SqlParameterCollection 中已包含 SqlParameter
    C#实现数据回滚,A事件和B事件同时执行,其中任何一个事件执行失败,都会返回失败
  • 原文地址:https://www.cnblogs.com/pruple/p/5335282.html
Copyright © 2011-2022 走看看