如果我正在自定义UITableViewCell
,我需要它有一个变量高度取决于输入的长度(例如,对于Twitter阅读器或某物),我怎么能做到这一点工作?heightForRowAtIndexPath与自定义单元格和标签
我发现了很多其他的例子,可以为标准的非自定义单元格设置它,但是我的单元格的主要文本标签更小等等,所以当我尝试使用这些方法中的任何一种时我的单元格,他们给出了各种奇怪的结果(文本重叠在单元格的底部等)
是否有一个标准化的单元设计方法(例如,我应该在Interface Builder中做多大?) ,假设我的标签是单元格宽度的一半。我将如何去计算单元格需要显示加载到该标签中的字符串的高度?这里有一个我在这里找到的方法,它可以在正常单元格上正常工作,但是会将怪异高度,重叠文本等自定义单元拧紧:(我完全不知道300/200000在这里做什么,如果有人能解释我' d是感激,太!)
- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
CGSize textSize = {300.f, 200000.0f};
CGSize size = [[_quoteStringsFromPlist objectAtIndex: indexPath.row] sizeWithFont: [UIFont systemFontOfSize:12.0f] constrainedToSize: textSize lineBreakMode: NSLineBreakByWordWrapping];
size.height += 5.0f;
float result = MAX(size.height, 32.0f);
return result;
}
您可以在界面生成器中完成所有操作(如果您使用的话)。在IB中选择tableview并更改行高。然后选择单元格并选择自定义单元格高度并输入相同的数字。希望能帮助到你! – Groot 2013-02-15 12:36:21
恐怕这没有奏效。细胞似乎处于不同的高度,但短小的细胞上方/下方有大量空间,而较长的细胞正在被切断。我在两个地方将行高设置为90。 – Luke 2013-02-15 12:43:26