移动开发 \ iOS \ UITextField,UITextView,UILabel 根据内容来计算高度

UITextField,UITextView,UILabel 根据内容来计算高度

总点击13
简介:在开发的过程中,常常遇到根据内容来决定控件的高度的情况,常见的就是UITextField,UITextView,UILabel这三个控件,下面一UITextView为例来说明一下:

在开发的过程中,常常遇到根据内容来决定控件的高度的情况,常见的就是UITextField,UITextView,UILabel这三个控件,下面一UITextView 为例来说明一下:

首先新新建一个textView. 设施text,font

 UITextView *textView = [[UITextView

alloc] 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 = [UIFont

systemFontOfSize:14];

  float width =200;

 float height =[self

heightForString:textView.text

fontSize:14 andWidth:width];

 textView.frame = CGRectmake(0,width,height);

    [self.view

addSubview: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;


   

}


一般情况下常见的需求这个方法都能够满足


意见反馈 常见问题 官方微信 返回顶部