我对此很陌生,正在研究一个基本的主从应用程序。当您点击表格视图单元格时,将显示一个视图,该视图的顶部包含一个用于项目标题的UILabel,一个用于说明该项目的UIImage和一个用于提供项目说明的UITextView。目前,文本是可滚动的,而标签和图像保留在原处。
是否可以将所有内容添加到UIScrollView,以便整个视图(包括图像和标签)将立即滚动?文本视图中的信息是预先确定的,无法编辑,但是每个文本中的文本量会有所不同,因此文本视图需要自行调整大小(高度)以适合文本-这会引起问题吗?
您可以使用下面的代码动态设置TextView的高度
在.m文件viewDidLoad
方法中添加以下几行
yourTextView=[[UITextView alloc]init];
txtView.frame=CGRectMake(0, 0, yourTextView.frame.size.width, [self textSize:YOURTEXT]+20);
yourTextView.backgroundColor=[UIColor clearColor];
yourTextView.userInteractionEnabled=NO;
yourTextView.font=[UIFont fontWithName:yourFont size:12];
yourScrollView.contentSize=CGSizeMake(320,yourTextView.frame.origin.y+yourTextView.frame.size.height+10);
之后添加此功能。
-(CGFloat) textSize:(NSString *)dataString
{
UIFont *font = [UIFont fontWithName:yourFont size:12];
CGSize constraintSize = CGSizeMake(yourTextView.frame.size.width-10, MAXFLOAT);
CGSize labelSize = [dataString sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:NSLineBreakByWordWrapping];
return labelSize.height+20;
}
如果您不想编辑文本,请改用UILabel
。确保将numberOfLines
设置为0
(无限制)或您选择的数字。
如果您想自己调整内容的大小,可以在textRectForBounds
上使用UILabel
。