我正在尝试使用包含UITextViews的单元格创建一个表格,以获取可变数量的文本。我需要指定每个单元格的高度以匹配textviews的内容大小。我正在使用......
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
UITextView *historyNode = [[[UITextView alloc]init]autorelease];
historyNode.text = (@"%@",[globalArrayWithStrings objectAtIndex:[indexPath row]]);
NSLog(@"%2.0f",historyNode.frame.size.height);
return historyNode.contentSize.height;
}
由于某种原因,它始终打印0.如果我打印在界面构建器中创建的textview的高度,它将打印正确的值。任何想法如何解决这个或为什么我不能得到文本视图的大小,直到它被添加到视图。
答案 0 :(得分:5)
您可以使用 sizeWithFont:方法查找动态高度。您的 heightForRowAtIndexPath:应如下所示。
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *text = [globalArrayWithStrings objectAtIndex:[indexPath row]];
CGSize maxSize = CGSizeMake(textViewWidth, 999); // 999 can be any maxmimum height you want
CGSize newSize = [text sizeWithFont:aFont constrainedToSize:maxSize lineBreakMode:textViewLineBreakMode];
return newSize.height;
}
答案 1 :(得分:0)
首先设置uitextView的框架,然后你将获得文本视图的高度。