UILabel、UITextView根据字符串动态计算高度
来源:互联网 发布:词云图制作软件 编辑:程序博客网 时间:2024/05/16 07:54
字符串动态计算控件的高度的方法对于 UILabel 和 UITextView 来说是不同的,UITextView 上左下右都有一个 8px 的 padding,使用计算 UILabel 的方法来算 UITextView 的高度,得到的高度是偏小的,上下各少了 8px。
UILabel:
- (void)createLabel{ CGSize labelSize = [self getLabelSizeWithString:labelString andFontSize:15 andMaxFrameWidth:self.view.frame.size.width]; UILabel *label = [[UILabel alloc]init]; label.frame = CGRectMake(0, 64, labelSize.width, labelSize.height); label.font = [UIFont systemFontOfSize:15]; label.backgroundColor = [UIColor redColor]; label.text = labelString; label.textAlignment = NSTextAlignmentLeft; label.numberOfLines = 0; [self.view addSubview:label];}/*! * 根据字符串动态计算UILabel的高度 * * @param text 字符串 * @param fontSize font * @param width 1、如果是定宽则传入UILabel预设的宽度(此种情况可能是多行) 2、如果只有一行,则高度有我们自己设定,但是宽度需要动态计算,此时可传入CGFLOAT_MAX * * @return UILabel实际frame的宽高 */- (CGSize)getLabelSizeWithString:(NSString*)text andFontSize:(int)fontSize andMaxFrameWidth:(float)width{ CGRect textRect = [text boundingRectWithSize:CGSizeMake(width, CGFLOAT_MAX) options:NSStringDrawingUsesLineFragmentOrigin attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:fontSize]} context:nil]; /*! * 其实算出来的textRect的宽度是不准的,高度是准的; * 如果需求是第1中情况下面是用来重设label宽度的代码; * 第二种情况在一下判断条件中永远不会成立因为width足够大。 */ CGSize stringSize = [text sizeWithAttributes:@{NSFontAttributeName:[UIFont systemFontOfSize:fontSize]}]; if(stringSize.width >= width) { textRect.size.width = width; } return textRect.size;}
UITextView:
/*! * 一定要先赋值textView.text然后才能计算 * API sizeThatFits 注释: return 'best' size to fit given size. does not actually resize view. Default is return existing view size */- (void)createTextView{ CGFloat textViewWidth = self.view.frame.size.width; UITextView *textView = [[UITextView alloc]init]; textView.text = textViewString; textView.frame = CGRectMake(0, 200, textViewWidth, [self getTextViewheightForString:textView andWidth:textViewWidth]); textView.font = [UIFont systemFontOfSize:15]; textView.backgroundColor = [UIColor redColor]; [self.view addSubview:textView];}- (float)getTextViewheightForString:(UITextView *)textView andWidth:(float)width{ CGSize sizeToFit = [textView sizeThatFits:CGSizeMake(width, CGFLOAT_MAX)]; return sizeToFit.height;}
0 0
- UILabel、UITextView根据字符串动态计算高度
- iOS根据字符串计算UITextView高度
- iOS根据字符串计算UITextView高度
- iOS根据字符串计算UITextView高度
- UITextField,UITextView,UILabel 根据内容来计算高度
- iOS UILabel根据内容动态计算高度
- 根据字符串长度计算UILabel的高度
- UiTextView 和UILabel 高度计算
- UILabel动态计算宽高度
- iOS根据字符串计算UITextView高度,以及各种字符串的限定
- UILabel, UITextView 高度自适应
- UILabel, UITextView 高度自适应
- 根据字符长度计算UILabel高度
- ios 根据文字数量计算UILabel高度
- 根据文字动态调整 UILabel 高度
- 根据字符串长度动态计算UILabelView的高度
- 动态计算 UILabel 的高度的代码
- iOS7计算UILabel中字符串的高度
- POJ 3368--Frequent values
- css3 animation 动画应用2 —— 打字效果
- node建立一个简单的博客
- ios xmpp 发送语音图片解决方案
- Linux的 lsof 命令详解
- UILabel、UITextView根据字符串动态计算高度
- IOS——获取CellID以及LAC
- ListView
- 读取BMP图像每一像素点RGB数据
- 检查文本中是否包含电话号码,并且可以拨出
- LeetCode:Unique Paths
- delphi——文件后缀名、工作区域介绍
- 无秘
- Android应用性能优化之使用SparseArray替代HashMap