iOS开发--根据label内容动态设定label大小
来源:互联网 发布:淘宝店代运营可靠吗 编辑:程序博客网 时间:2024/06/05 04:52
两个方法:
- (CGSize)sizeWithAttributes:(nullable NSDictionary<NSString *, id> *)attrs NS_AVAILABLE(10_0, 7_0);
- (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options attributes:(nullable NSDictionary<NSString *, id> *)attributes context:(nullable NSStringDrawingContext *)context NS_AVAILABLE(10_11, 7_0);
eg1:
- (void)viewDidLoad { [super viewDidLoad]; NSString *str = @"原纱央莉选择了加入AV界为自己谋求稳定的工作,并且选择了SOD作为自己的东家。在2008年11月25日sabra杂志里当时原纱央莉连载的专栏“SAORIchewBE”里公开了要加入AV的事情。"; //设置按照什么字体大小来计算,你可以添加其他的属性 NSDictionary *attrs = @{NSFontAttributeName : [UIFont systemFontOfSize:25]}; //label1 UILabel *label1 = [[UILabel alloc]init]; label1.backgroundColor = [UIColor yellowColor]; CGSize size1 = [str sizeWithAttributes:attrs];//方法1,计算大小,但是只有一行 label1.frame = (CGRect){{50,50},size1}; label1.text = str; [self.view addSubview:label1]; //label2 UILabel *label2 = [[UILabel alloc]init]; label2.backgroundColor = [UIColor purpleColor]; CGSize size2 = CGSizeMake(200, MAXFLOAT);//给出一个限制size,设定宽度200,高度可变 CGRect rect2 = [str boundingRectWithSize:size2 options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil];//方法2,计算大小,但是会根据size2来限制 CGFloat label2_H = rect2.size.height; label2.frame = CGRectMake(50, 100, size2.width, label2_H); [self.view addSubview:label2]; label2.text = str; label2.numberOfLines = 0; //label1和label2都没有设置字体的大小,所以你会感觉label有很多空白,看label3 //label3设置了字体大小,因为默认的字体大小小于25,所以label1和label2都有空白,现在设置label3的字体和计算依据的字体一样大,看效果 UILabel *label3 = [[UILabel alloc]init]; label3.backgroundColor = [UIColor grayColor]; CGSize size3 = CGSizeMake(200, MAXFLOAT); CGRect rect3 = [str boundingRectWithSize:size2 options:NSStringDrawingUsesLineFragmentOrigin attributes:attrs context:nil];//方法2 CGFloat label3_H = rect3.size.height; label3.frame = CGRectMake(150, 300, size3.width, label3_H); [self.view addSubview:label3]; label3.font = [UIFont systemFontOfSize:25];//相比label2多了这句代码 label3.text = str; label3.numberOfLines = 0;}
1 0
- iOS开发--根据label内容动态设定label大小
- iOS label根据显示内容自适应大小
- iOS label根据显示内容自适应大小
- iOS label根据显示内容自适应大小
- iOS根据文本长度动态计算label的大小
- 根据Label的文字内容动态计算Label高度
- iOS label 根据内容自动布局
- iOS - 根据lable内容计算label高度
- ios开发系列之label自适应大小
- iOS--根据文本内容的长度动态改变label的宽度(有最大值)
- UITextView内容不能紧贴边缘,内容不能靠边,导致不能对齐label--iOS 开发
- 根据文本内容动态确定Label的宽高
- 根据label正文内容动态计算正文的高度
- iOS根据字体字号大小和字体label计算label宽度
- iOS根据文字字数动态确定Label宽高
- iOS开发之label
- IOS开发UI-------label
- iOS 改变Label字号大小
- 位域
- ThingWorx : 3、为Thing添加valueStream(web显示曲线做准备)
- RxJava的初学随笔(二)
- 设计模式(4)——抽象工厂模式
- Android Studio :Error:(1, 0) Plugin is too old, please update to a more recent version, or set AND……
- iOS开发--根据label内容动态设定label大小
- 链表的反转
- TCP/IP、Http、Socket的区别
- python读取mnist
- 第一行代码-13.3 定制自己的日志工具
- Android <shape />的使用
- 设计模式(5)——建造者模式(Builder Pattern)
- 虚函数 纯虚函数 抽象类
- 使用poi来解析Excel的xls和xlsx