自定义UITableviewCell中的多行标签

我已经四处搜寻任何提示我的问题。 但我找不到解决scheme。

我做了UITableviewCell(FeedCell)的一个子类。 有一个图像和两个标签。 问题是我需要多行的标签不会显示多行。

我使用autolayot。

这是一个显示用户twitterfeed的应用程序。

我的代码:

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { static NSString *CellIdentifier = @"Cell"; FeedCell *tweetCell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; if (tweetCell == nil) { tweetCell = [[FeedCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; [tweetCell.tweetText setNumberOfLines:0]; [tweetCell.tweetText setLineBreakMode:NSLineBreakByWordWrapping]; [tweetCell.tweetText setFont:[self fontForCell] ]; } NSDictionary *tweet = _dataSource[[indexPath row]]; NSString *tweetString = [tweet valueForKey:@"text"]; tweetCell.name.text =[tweet valueForKeyPath:@"user.name"]; [tweetCell.tweetText setText:tweetString]; return tweetCell; 

}

我也设置了heigthforRowAtIndexPath:

 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath { NSDictionary *tweet = _dataSource[[indexPath row]]; NSString *theText=[tweet valueForKey:@"text"]; UIFont *cellFont = [self fontForCell]; CGSize constraintSize = CGSizeMake(280.0f, MAXFLOAT); CGSize labelSize = [theText sizeWithFont:cellFont constrainedToSize:constraintSize lineBreakMode:NSLineBreakByWordWrapping]; return labelSize.height + 20; 

}

问题是,鸣叫cell.tweetText不显示多行。 我还没有尝试过与另一个CellStyle(我使用自定义cellstyle)。

任何提示任何人?

对于mutiline使用以下内容:

 tweetCell.tweetText.numberOfLines = 0; [tweetCell.tweetText sizeToFit]; 

为了testing目的,将行的高度设置为46.0f,方法如下:

 - (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{ 

我无法解决高度问题,但这确实给了我一个UILabel多行

我知道这是一个老post,但是当我正在search时就出现了。

我通过遵循http://www.raywenderlich.com/73602/dynamic-table-view-cell-height-auto-layout得到了一个这样的例子。

我认为对于iOS8需要以下内容:

  • 将行设置为0
  • 设置文字换行
  • 将标签尺寸设置为> = 20
  • 确保有足够的限制来确定单元高度(标题的高度和垂直间距)

尝试

 [tweetCell.tweetText sizeToFit] 

首先,如果要显示2行文字(最小1和最大2),则numberOfLines必须设置为2.将其设置为0意味着没有限制。

其次,只设置线数是不够的。 标签宽度HAS被指定。 要么使用sizeToFit ,要么设置一个常量值。

尝试把代码设置为这些大括号的行数,linebreakmode和字体外部