美文网首页
【知识总结】sizeToFit

【知识总结】sizeToFit

作者: 小子爱搞事 | 来源:发表于2016-11-20 11:34 被阅读180次
    Snip20161108_6.png
        UILabel *label = [[UILabel alloc] init];
        label.numberOfLines = 0;
        label.backgroundColor = [[UIColor yellowColor] colorWithAlphaComponent:0.3];
        label.frame = CGRectMake(0, 20, self.view.bounds.size.width, 0);
        label.text = @"当一个key-value对在缓存中时,缓存维护它的一个强引用。存储在NSCache中的通用数据类型通常是实现了NSDiscardableContent协议的对象。在缓存中存储这类对象是有好处的,因为当不再需要它时,可以丢弃这些内容,以节省内存。默认情况下,缓存中的NSDiscardableContent对象在其内容被丢弃时,会被移除出缓存,尽管我们可以改变这种缓存策略。如果一个NSDiscardableContent被放进缓存,则在对象被移除时,缓存会调用discardContentIfPossible方法。";
        [label sizeToFit];
        [self.view addSubview:label];
        
        
        UILabel *label2 = [[UILabel alloc] init];
        label2.backgroundColor = [[UIColor blueColor] colorWithAlphaComponent:0.3];
        label2.numberOfLines = 0;
        label2.frame = CGRectMake(0, CGRectGetMaxY(label.frame), 300, 0);
        label2.text = @"当一个key-value对在缓存中时,缓存维护它的一个强引用。存储在NSCache中的通用数据类型通常是实现了NSDiscardableContent协议的对象。在缓存中存储这类对";
        [label2 sizeToFit];
        [self.view addSubview:label2];
       
        
        UILabel *label3 = [[UILabel alloc] init];
        label3.backgroundColor = [[UIColor redColor] colorWithAlphaComponent:0.3];
        label3.numberOfLines = 0;
        label3.frame = CGRectMake(0, CGRectGetMaxY(label2.frame), 300, 0);
        label3.text = @"当一个key-val\n\nue对在缓\n存中时,缓存维\n护它的一个\n强引用。存储在\nNSCache中的\n通用数据类型通常\n是实现了NSDisca\nrdableContent。";
        [self.view addSubview:label3];
        [label3 sizeToFit];
    

    总结

    设置lable的大小以后,根据sizeToFit自动设置文本大小,遵守以下几个规则:
    1,设置的frame的width作为最大的文本宽度,不可超过
    2,如果文本中有换行,使得每行的宽度都不超过frame中的width,通过sizeToFit得到的宽将会是实际显示文本所需要的宽度,而不是width

    相关文章

      网友评论

          本文标题:【知识总结】sizeToFit

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