2010-06-30 55 views
1

我需要调整numberOfLines的标签cellForRowAtIndexPath。标签处于自动换行模式。 但是,标签高度的实际计算发生在heightForRowAtIndexPathUILabel numberOfLines

如何计算numberOfLinescellForRowAtIndexPath?现在我只是使用一些非常大的数字。

回答

2

从Apple文档:

要删除任何上限,并用 尽可能多的行根据需要,这个属性的值 设置为0

然后你可以使用这种技术在heightForRowAtIndexPath方法中确定细胞应该有多高。

常量:

static const CGFloat kCellFontSize = 14.0; 
static const CGFloat kCellWidth = 300.0; 
static const CGFloat kCellHeightMax = 999.0; 
static const CGFloat kCellPadding = 10.0; 

方法:

CGSize maxSize = CGSizeMake(kCellWidth, kCellHeightMax); 

CGSize labelSize = 
     [[self cellTextString] sizeWithFont: [self cellFont] 
           constrainedToSize: maxSize 
            lineBreakMode: UILineBreakModeTailTruncation]; 

return (labelSize.height + (2 * kCellPadding)); 
+0

我也使用这种技术,但问题是'numberOfLines'我想更好的小区建设过程中设置的'cellForRowAtIndexPath'。 – Pablo 2010-06-30 13:25:35

+2

我很抱歉。我通常将行数设置为0,这将导致标签根据需要使用尽可能多的行。 – jessecurry 2010-06-30 13:35:30

+0

我喜欢添加最小高度,所以我的单行不是很小。虽然找不到适合这个目的的常量。 – zekel 2011-01-05 17:29:39