UITextView高度基于UiTableView Cell中的内容文本

时间:2015-07-30 22:15:51

标签: ios xcode uitableview textview

我尝试了几次在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;
}

我希望找到解决这个问题的方法

由于 :)

1 个答案:

答案 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];
}