0

我正在处理 RSS 提要,我正在考虑调整 TableViewCell 的大小以适应进来的标题/描述信息,我希望 Cell 显示所有文本而不是切断它......有人知道吗这样做的好方法或知道一个好的教程?

在此处输入图像描述

谢谢。

4

3 回答 3

1

您需要计算保存您的提要项目数据的单元格的高度,并在tableView:heightForRowAtIndexPath:中的表格要求时返回它。

此外,您需要说UILabel不要截断您的文本。为此,请查看调整标签文本大小下的方法

于 2012-11-27T14:01:15.337 回答
0

您应该为此制作自定义 UITableViewCell。然后在您的 .xib 文件中设置正确的自动调整参数然后,在您的单元格 .m 文件中,您应该以这种方式实现 layoutSubviews 方法

- (void) layoutSubviews
{
    [super layoutSubviews];
    CGRect newFrame = rssLabel.frame;
    CGSize maximumLabelSize = CGSizeMake(rssLabel.frame.size.width,9999);
    CGSize expectedLabelSize = [rssLabel.text sizeWithFont:tweetLabel.font        constrainedToSize:maximumLabelSize lineBreakMode:rssLabel.lineBreakMode];
    int height = expectedLabelSize.height;
    newFrame.size.height = height;
    rssLabel.frame = newFrame;
}

当然,我忘了说你应该计算你的行的高度

于 2012-11-27T14:05:29.060 回答
0

最好的方法是子类化UITableViewCell。在这个类中实现一个类方法来返回单元格的高度。在 tableview 的委托方法中tableView:heightForRowAtIndexPath:调用此方法并将您的文本传递给它。用途NSString's sizeWithFont constrainedToSize lineBreakMode:方法和计算高度。将标签的属性设置noOfLines为 0。你就可以开始了。

例如:-

+(CGFloat)heightForText:(NSString *)value{
     CGSize size = [value sizeWithFont:[UIFont systemFontOfSize:13] constrainedToSize:CGSizeMake(320, MAXFLOAT)];
     if(size.height<MINIMUM_CELL_HEIGHT){
         return MINIMUM_CELL_HEIGHT;
     }else{
    return size.height;
     }
 }
于 2012-11-27T15:29:59.577 回答