如何调整UITableViewCell的大小,使其适合任何detailTextLabel

时间:2011-03-01 16:32:20

标签: iphone xcode

即时制作iphone应用程序,以便detailTextlabel中的任何文本都适合

例如......如果detailTextLabel很短,它将显示正常大小的单元格,但如果很长,它将显示更大的单元格

谢谢你:D

3 个答案:

答案 0 :(得分:2)

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath{


    CGSize maxSize = CGSizeMake(max_size);
    CGSize cellSize = [yourString 
                       sizeWithFont:[UIFont systemFontOfSize:15]
                       constrainedToSize:maxSize
                       lineBreakMode:UILineBreakModeWordWrap];
    return cellSize.height;

}

答案 1 :(得分:1)

考虑我的实施:

-(CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {

switch (theSection) {
    case 0:
        if (indexPath.row ==6) //the row you need to check for height (if any)

        {

            if([yourString length]<=35) // if less than 35 chars, just return a basic size of 50
            {
                return 50;
            }

            CGSize detailSize = [yourString sizeWithFont:[UIFont systemFontOfSize:20]constrainedToSize:CGSizeMake(270, 4000)lineBreakMode:UILineBreakModeWordWrap];

            return detailSize.height;
        }

希望它有所帮助,为了帮助您理解,您可能需要查看'sizeWithFont'来了解这是为了返回大小。

答案 2 :(得分:0)

您必须在UITableViewDelegate上使用tableView:heightForRowAtIndexPath:方法返回行的高度。请注意,如果您有多行,则此方法应该非常快,因为它将针对表中的每一行而不仅仅是可见行进行调用。