调整TableViewCell的大小以适应RSS Feed详细信息

时间:2012-11-27 13:57:18

标签: iphone ios xcode tableview

我正在研究RSS Feed,我正在调整TableViewCell的大小以适应标题/描述信息,我希望Cell能够显示所有文本而不是将其剪掉......有没有人知道这样做的好方法或知道一个好的教程?

enter image description here

感谢。

3 个答案:

答案 0 :(得分:1)

您需要计算包含Feed项数据的单元格的高度,并在表格在tableView:heightForRowAtIndexPath:中请求时将其返回。

此外,您需要说UILabel不截断您的文字。为此,请查看Sizing the Label’s Text

下的方法

答案 1 :(得分: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;
}

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

答案 2 :(得分: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;
     }
 }