我正在从XML Feed中加载我的UITextView,因此文本不断变化。我正在尝试以下方法来调整单元格和文本的大小,并调整单元格但不调整文本视图,它只是不显示文本视图,有时只显示文本视图的一部分。
任何有关正确方法的提示都会非常感激;
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
AssessObject *newObj1;
newObj1=[totalArray objectAtIndex:indexPath.row];
NSString *cellText = newObj1.routeText;
UIFont *cellFont = [UIFont fontWithName:@"Helvetica" size:16.0];
CGSize constraintSize = CGSizeMake(188.0, CGFLOAT_MAX);
CGSize textViewSize = [cellText sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:UILineBreakModeWordWrap];
return textViewSize.height + 200;
}
答案 0 :(得分:3)
检查已添加到单元格中的UITextView的AutoresizingMask。
确保将其设置为使其与单元格一起调整大小(您可以在IB中执行此操作,或使用UIViewAutoresizingMaskFlexibleWidth|UIViewAutoresizingMaskFlexibleWidth
值通过代码执行此操作)
答案 1 :(得分:1)
将textView大小设置为等于textView的contentSize。 像这样:
CGRectMake(textView.frame.origin.x, textView.frame.origin.y, textView.frame.size.width, textView.contentSize.height);
我正在使textView的高度等于它的contentView的高度。
答案 2 :(得分:0)
设置UITextView的字体大小,文本内容和框架rect,然后[UITextView sizeToFit]
计算UITextView的contentSize
,然后用contentSize的大小计算行高。
不要忘记调整UITextView的框架矩形;
答案 3 :(得分:0)
当我把它放到ScrollView上时,我已经根据文本的数量使用了Bruno的想法来调整TextView的大小。这就是我这样做的方式。那里有一堆常数,你可能不会使用。将textView添加到ScrollView后调整textView非常重要。
// Programmatic creation of scroll view layout
NSString *text = @"Your text";
CGFloat textOffSetInColumn = 10;
CGFloat infoTextWidth = 196;
CGFloat infoOffsetVertical = 36;
CGFloat initialTextHeight = 50;
// Create textView with initial height
CGRect infoTextFrame = CGRectMake(textOffSetInColumn, infoOffsetVertical, infoTextWidth, initialTextHeight);
infoTextView = [[UITextView alloc] initWithFrame:infoTextFrame];
infoTextView.text = text;
[scrollView addSubview:infoTextView];
// Resize textView
CGFloat infoTextHeight = infoTextView.contentSize.height;
infoTextFrame = CGRectMake(textOffSetInColumn, infoOffsetVertical, infoTextWidth, infoTextHeight);
infoTextView.frame = infoTextFrame;
如果要更改TextView的大小并将其居中放置到上一个中心,可以使用以下代码:
// Changing size of TextView and centering
CGPoint center = self.categoryTextView.center;
self.categoryTextView.frame = CGRectMake(_categoryTextView.frame.origin.x, _categoryTextView.frame.origin.y, _categoryTextView.frame.size.width, _categoryTextView.contentSize.height);
self.categoryTextView.center = center;
而不是categoryTextView使用您自己的Outlet名称。