我尝试了几次在tableview单元格中使textview根据textview中的文本调整高度。我尝试了以下但没有运气:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
TnCityFeedCell *cell = [tableView dequeueReusableCellWithIdentifier:@"CityFeedCell" forIndexPath:indexPath];
cell.FeedMainText.text = [[self.FeedArray valueForKey:@"FEED_MAIN_TEXT"] objectAtIndex:indexPath.row];
CGSize size = [cell.FeedMainText systemLayoutSizeFittingSize:cell.FeedMainText.contentSize];
CGRect frame = cell.FeedMainText.frame;
frame.size.height = size.height;
cell.FeedMainText.frame = frame;
return cell;
}
我希望找到解决这个问题的方法
由于 :)
答案 0 :(得分:0)
如果将以下两行添加到ViewDidLoad中,请不要这样做,
self.tableView.estimatedSectionHeaderHeight = 44.0;
self.tableView.rowHeight = UITableViewAutomaticDimension;
尝试将以下两种方法添加到您的课程中。我从表格视图的框架中减去20来增加边距;你可能不想这样做。
- (CGFloat) getHeightForTextView: (UITextView *)theTextView {
float height = [self textViewHeightForRowAtIndexPath:nil theTextView:theTextView];
CGRect frame = CGRectMake(0, 0, self.tableView.frame.size.width-20, height);
theTextView.frame = frame;
return [self textViewHeightForRowAtIndexPath:nil theTextView:theTextView];
}
- (CGFloat)textViewHeightForRowAtIndexPath: (NSIndexPath*)indexPath theTextView: (UITextView *)theTextView {
CGSize size = [theTextView sizeThatFits:CGSizeMake(self.tableView.frame.size.width-20, FLT_MAX)];
return size.height;
}
在控制器中使用它们。我只回到了我的问题"的高度。 TextView的。
(CGFloat) tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
if (indexPath.row == 0) {
return UITableViewAutomaticDimension;
}
return [self getHeightForTextView:problem];
}