`

动态调整UITableViewCell高度的实现方法

    博客分类:
  • ios
阅读更多

转自:http://www.cocoachina.com/iphonedev/sdk/2011/0627/2983.html


有时我们需要动态调整UITableViewCell的高度,根据内容的不同设置不同的高度,以前看到一种实现方法,写得有点麻烦,具体地址找不到了,这里有个更好的(至少我认为),分享一下部分代码。

 

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
    static NSString *CellIdentifier = @"Cell";
    
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
        UILabel *label = [[UILabel alloc] initWithFrame:CGRectZero];
        label.tag = 1;
        label.lineBreakMode = UILineBreakModeWordWrap;
        label.highlightedTextColor = [UIColor whiteColor];
        label.numberOfLines = 0;
        label.opaque = NO; // 选中Opaque表示视图后面的任何内容都不应该绘制
        label.backgroundColor = [UIColor clearColor];
        [cell.contentView addSubview:label];
        [label release];
    }
    
    UILabel *label = (UILabel *)[cell viewWithTag:1];
    NSString *text;
    text = [textArray objectAtIndex:indexPath.row];
    CGRect cellFrame = [cell frame];
    cellFrame.origin = CGPointMake(0, 0);
    
    label.text = text;
    CGRect rect = CGRectInset(cellFrame, 2, 2);
    label.frame = rect;
    [label sizeToFit];
    if (label.frame.size.height > 46) {
        cellFrame.size.height = 50 + label.frame.size.height - 46;
    }
    else {
        cellFrame.size.height = 50;
    }
    [cell setFrame:cellFrame];
    
    return cell;
}

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    UITableViewCell *cell = [self tableView:tableView cellForRowAtIndexPath:indexPath];
    //UITableViewCell *cell = [self cellForRowAtIndexPath:indexPath];
    return cell.frame.size.height;
}
 
分享到:
评论

相关推荐

    动态计算UITableViewCell高度详解

    实现动态计算UITableViewCell高度主要涉及以下几个步骤: 1. **启用自动布局(Auto Layout)**:在iOS开发中,我们通常使用Auto Layout来定义视图的约束,以便根据内容自动调整大小。在UITableViewCell中,确保所有...

    使用AutoLayout动态计算UITableViewCell高度

    在实现动态计算UITableViewCell高度时,关键步骤如下: 1. **创建自定义UITableViewCell**: 首先,我们需要为UITableView创建一个自定义子类,这将使我们能够添加所需的视图和设置约束。在子类中,我们可以使用`...

    swift-动态计算UITableViewCell高度的Demo

    为了实现动态高度,我们需要遵循UITableViewDataSource协议,并实现其中的`tableView(_:heightForRowAt:)`方法。这个方法会根据传入的indexPath返回对应cell的高度。Swift中的这个API允许我们根据实际的数据内容动态...

    ios-布局实现动态UITableviewCell的高度调整以及动画效果.zip

    UITableViewCell的动态高度计算一直是一个交流讨论的话题,也已经有了很多实现的机制,但更多的是需要一些扩展类什么的,还有需要计算什么的,使用起来比较麻烦。因此这里推荐一种自动计算高度的方法,他是在我的...

    UITableviewCell高度自适应

    本文将深入探讨`UITableView`中`UITableViewCell`高度自适应的实现方法。 首先,我们需要理解`UITableView`的工作机制。默认情况下,`UITableView`会为每个单元格分配一个固定的高度,这通常是通过`tableView(_:...

    UITableViewCell自适应高度

    在设计用户界面时,为了提供良好的用户体验,我们希望`UITableViewCell`的高度能够根据内容自动调整,这就是所谓的`UITableViewCell`自适应高度。 `UITableView`的高度自适应功能主要是通过重写`...

    UITableViewCell根据内容自动高度

    在iOS开发中,UITableView是展示数据列表的一种常见控件,其内部的单元格(UITableViewCell)通常需要根据内容动态调整高度。这个过程涉及到自动布局(Auto Layout)和UITableView的自适应高度计算。本知识点将深入...

    iOS通过代码创建高度不一致的UITableViewCell

    当数据内容不固定,每个单元格(UITableViewCell)需要根据其内容动态调整高度时,就需要实现自定义的cell高度计算。本文将深入探讨如何通过代码创建高度不一致的UITableViewCell,并提供一种设计模式。 首先,了解...

    UITableViewCell使用自动布局根据内容动态调整高度

    这就需要用到Auto Layout来实现动态高度的功能。本文将详细介绍如何在UITableViewCell中使用Auto Layout来实现内容动态调整高度。 首先,了解Auto Layout的基本概念。Auto Layout是一种布局系统,用于定义视图之间...

    UITableViewCell高度的自适应

    在iOS开发中,`UITableViewCell`的高度自适应是一个关键的特性,它使得表格视图能够根据内容动态调整单元格的高度,从而提供更好的用户体验。这个话题主要涉及到`UITableView`和`UITableViewCell`的交互,以及Auto ...

    swift-这是一个示例项目实现功能UITableViewCell动态高度基于自动布局

    1. **动态高度计算**: 在UITableView中,每个单元格(UITableViewCell)的高度通常是固定的,但为了提供更好的用户体验,有时我们需要根据内容动态调整单元格的高度。在Swift中,可以通过重写`UITableViewDataSource...

    IOS源码——自定义UITableViewCell。实现各种样式的表格输入界面.7z

    6. 动态高度:在实现输入界面时,可能需要根据内容动态调整单元格的高度。通过实现`- tableView:heightForRowAtIndexPath:`,可以根据需要计算每个单元格的适当高度。 7. 数据模型绑定:为了将数据绑定到视图,需要...

    swift-SoolyMoment根据内容动态计算高度的UITableViewCell

    为了实现动态高度,我们需要重写`tableView(_:estimatedHeightForRowAt:)`和`tableView(_:heightForRowAt:)`。这两个方法分别用于设置每个单元格的预估高度和实际高度。 在`SoolyMoment`项目中,可能包含一个名为`...

    swift-UITableViewCell左右滑动出现更多按钮按钮高度自定义

    如果使用AutoLayout,可以通过修改约束(constraints)来实现动态高度,例如设置按钮的heightAnchor与一个可变的Height约束相关联,然后根据需求改变Height约束的constant值。 为了响应滑动事件,我们需要在...

    代码实现 UITableView与UITableViewCell

    综上所述,实现UITableView和UITableViewCell涉及多个步骤,从创建表格到数据源和委托方法的设置,再到自定义单元格和处理用户交互,每一个环节都是至关重要的。在实际开发中,我们需要不断优化和调整,以提供最佳的...

    动态改变UITableviewCell高度(iPhone源代码)

    `动态改变UITableViewCell高度`是常见的需求,尤其是在处理含有不固定高度内容的cell时,如包含图片、文本等。本示例源代码提供了解决这个问题的一个解决方案,由开发者D_索隆编写,并遵循Zlib授权协议。 首先,...

    IOS源码——自定义UITableViewCell。实现各种样式的表格输入界面.zip

    5. 动态高度:根据内容自动调整Cell的高度,使其适应不同长度的文本或其他元素。 在压缩包的示例代码中,你可能会看到如何实现上述功能的示例。通过学习和理解这些代码,你可以掌握自定义UITableViewCell的关键技巧...

    iOS、UITableViewCell、自定义

    本话题将深入探讨如何实现UITableViewCell的自定义,特别是实现等高的自定义。 一、UITableViewCell自定义基础 自定义UITableViewCell主要涉及以下几个方面: 1. 创建UITableViewCell子类:通过继承...

    IOS应用源码之自定义UITableViewCell。实现各种样式的表格输入界面.zip

    4. 自适应高度:动态计算单元格的高度,根据内容自动调整。 五、注意事项 1. 为了提高性能,应使用`dequeueReusableCellWithIdentifier:`方法复用单元格,避免不必要的内存开销。 2. 在自定义过程中,确保遵循苹果...

Global site tag (gtag.js) - Google Analytics