在开发的过程中,常常遇到根据内容来决定控件的高度的情况,常见的就是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,0,width,height);
[self.view addSubview:textView];
计算textview高度的方法
{
float height = [[ NSString stringWithFormat : @"%@\n " ,value] boundingRectWithSize : CGSizeMake (width, CGFLOAT_MAX ) options : NSStringDrawingUsesLineFragmentOrigin | NSStringDrawingUsesFontLeading attributes :[ NSDictionary dictionaryWithObjectsAndKeys :[ UIFont systemFontOfSize :fontSize], NSFontAttributeName , nil ] context : nil ]. size . height ;
return height;