【iOS界面开发】iOS下,UILabel自适应高度的方法
来源:互联网 发布:黑帽seo赚钱 编辑:程序博客网 时间:2024/06/07 09:17
主要思路是通过调用UILabel
的- (CGSize)sizeThatFits:(CGSize)size
方法来得到label的自适应高度值。
注意这里不能调用NSString
的- (CGSize)sizeWithFont:(UIFont *)font constrainedToSize:(CGSize)size lineBreakMode:(NSLineBreakMode)lineBreakMode
方法来获得高度,因为如果未来label的可以配置其他行间距,自定义字体等等,那么此方法便会失效。 其实,iOS的UILabel已经可以支持不同的字体属性,比如大小,颜色。所以此方法已经不再是正确的了
1.针对非AutoLayout的情况,直接调整frame:
- (void)autoHeightOfLabel:(UILabel *)label{ //Calculate the expected size based on the font and linebreak mode of your label // FLT_MAX here simply means no constraint in height CGSize maximumLabelSize = CGSizeMake(label.frame.size.width, FLT_MAX); CGSize expectedLabelSize = [label sizeThatFits:maximumLabelSize]; //adjust the label the the new height. CGRect newFrame = label.frame; newFrame.size.height = expectedLabelSize.height; label.frame = newFrame; [label updateConstraintsIfNeeded];}
2.针对AutoLayout的情况,需要更新约束:
- (void)autoHeightOfLabel:(UILabel *)label{ //Calculate the expected size based on the font and linebreak mode of your label // FLT_MAX here simply means no constraint in height CGSize maximumLabelSize = CGSizeMake(label.frame.size.width, FLT_MAX); //add the new height constraint to the label for (NSLayoutConstraint *constraint in label.constraints) { if (constraint.firstItem == label && constraint.firstAttribute == NSLayoutAttributeHeight && constraint.secondItem == nil) { constraint.constant = expectedLabelSize.height; break; } }}
0 0
- 【iOS界面开发】iOS下,UILabel自适应高度的方法
- iOS UILabel高度自适应
- iOS UILabel自适应高度
- IOS-UILabel自适应高度
- iOS开发 UILabel 自动换行 高度自适应
- iOS UILabel自适应高度的简单实现
- iOS 下,UILable自适应高度的方法
- IOS之UILabel自适应高度
- Ios UILabel 自适应 文本高度
- iOS-UILabel如何高度自适应
- iOS UILabel自适应高度宽度
- iOS UILabel 自适应高度宽度
- iOS开发——UILabel自动换行及高度自适应UILabel自动换行及高度自适应
- iOS开发笔记--UILabel和UITextView自适应文本高度代码
- iOS开发- UILabel 自动换行 及 高度自适应
- iOS开发- UILabel 自动换行 及 高度自适应
- IOS开发—IOS7.0以后UILabel高度自适应设置
- iOS开发笔记--UILabel和UITextView自适应文本高度代码
- The Log-Structured Merge-Tree(译):中
- C++ Muduo网络库基本流程跟踪,学习下
- IOS开发关于自动布局Autolayout产生的bug
- Bootstrap之Carousel不能自动播放的解决办法,支持左右滑动手势
- 在Linux环境下(Ubuntu)编写MASM汇编程序
- 【iOS界面开发】iOS下,UILabel自适应高度的方法
- windows-----MySQL下载安装、配置与使用(win7x64)
- java web总结(jdbc连接数据库)
- 生成Excel并下载
- MySQL必知必会笔记(四)SELECT语句 联结表 高级联结 组合查询 全文本搜索
- 美团面试题:计算机网络 OSI体系模型及各层特点,以使用QQ为例
- haproxy 官方文档
- c++运算符重载
- 数据结构与算法分析(c++版) #11 链式队列