美文网首页
【知识总结】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