我正在处理 RSS 提要,我正在考虑调整 TableViewCell 的大小以适应进来的标题/描述信息,我希望 Cell 显示所有文本而不是切断它......有人知道吗这样做的好方法或知道一个好的教程?
谢谢。
您需要计算保存您的提要项目数据的单元格的高度,并在tableView:heightForRowAtIndexPath:中的表格要求时返回它。
此外,您需要说UILabel
不要截断您的文本。为此,请查看调整标签文本大小下的方法
您应该为此制作自定义 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;
}
当然,我忘了说你应该计算你的行的高度
最好的方法是子类化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;
}
}