首页 > 代码库 > UITextField,UITextView,UILabel 根据内容来计算高度
UITextField,UITextView,UILabel 根据内容来计算高度
在开发的过程中,常常遇到根据内容来决定控件的高度的情况,常见的就是UITextField,UITextView,UILabel这三个控件,下面一UITextView 为例来说明一下:
首先新新建一个textView. 设施text,font
UITextView *textView = [[UITextViewalloc] init];
textView.text =@"2015-01-19 14:07:47.290 MicroPort[3047:103721] -[PPRevealSideViewController gestureRecognizerDidTap:] [Line 1463] Yes, the tap gesture is animated, this is normal, not a bug! Is there anybody here with a non animate interface? :P";
textView.font = [UIFontsystemFontOfSize:14];
float width =200;
float height =[selfheightForString:textView.text fontSize:14 andWidth:width];
textView.frame = CGRectmake(0,0,width,height);
[self.viewaddSubview:textView];
计算textview高度的方法
- (float)heightForString:(NSString*)value fontSize:(float)fontSize andWidth:(float)width//根据字符串的的长度来计算UITextView的高度
{
float height = [[NSStringstringWithFormat:@"%@\n ",value] boundingRectWithSize:CGSizeMake(width,CGFLOAT_MAX)options:NSStringDrawingUsesLineFragmentOrigin| NSStringDrawingUsesFontLeadingattributes:[NSDictionarydictionaryWithObjectsAndKeys:[UIFontsystemFontOfSize:fontSize],NSFontAttributeName,nil]context:nil].size.height;
return height;
{
float height = [[NSStringstringWithFormat:@"%@\n ",value] boundingRectWithSize:CGSizeMake(width,CGFLOAT_MAX)options:NSStringDrawingUsesLineFragmentOrigin| NSStringDrawingUsesFontLeadingattributes:[NSDictionarydictionaryWithObjectsAndKeys:[UIFontsystemFontOfSize:fontSize],NSFontAttributeName,nil]context:nil].size.height;
return height;
}
一般情况下常见的需求这个方法都能够满足
UITextField,UITextView,UILabel 根据内容来计算高度
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。