`
fireflylover
  • 浏览: 110483 次
  • 性别: Icon_minigender_2
  • 来自: 武汉
社区版块
存档分类
最新评论

IPhone 之 UITableViewCell自适应高度

阅读更多

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
    // 列寬
    CGFloat contentWidth = self.tableView.frame.size.width;
    // 用何種字體進行顯示
    UIFont *font = [UIFont systemFontOfSize:13];
    
    // 該行要顯示的內容
    NSString *content = [data objectAtIndex:indexPath.row];
    // 計算出顯示完內容需要的最小尺寸
    CGSize size = [content sizeWithFont:font constrainedToSize:CGSizeMake(contentWidth, 1000) lineBreakMode:UILineBreakModeWordWrap];
    
    // 這裏返回需要的高度
    return size.height; 
}

// Customize the appearance of table view cells.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
    
    static NSString *CellIdentifier = @"Cell";
    // 列寬
    CGFloat contentWidth = self.tableView.frame.size.width;
    // 用何種字體進行顯示
    UIFont *font = [UIFont systemFontOfSize:13];
    
    // 該行要顯示的內容
    NSString *content = [data objectAtIndex:indexPath.row];
    // 計算出顯示完內容需要的最小尺寸
    CGSize size = [content sizeWithFont:font constrainedToSize:CGSizeMake(contentWidth, 1000) lineBreakMode:UILineBreakModeWordWrap];
    
    // 構建顯示行
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil) {
        cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
    }
    
    CGRect rect = [cell.textLabel textRectForBounds:cell.textLabel.frame limitedToNumberOfLines:0];
    // 設置顯示榘形大小
    rect.size = size;
    // 重置列文本區域
    cell.textLabel.frame = rect;
    
    cell.textLabel.text = content;
    
    // 設置自動換行(重要)
    cell.textLabel.numberOfLines = 0;
    // 設置顯示字體(一定要和之前計算時使用字體一至)
    cell.textLabel.font = font;

    return cell;
}

分享到:
评论

相关推荐

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

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

    根据内容动态调整IPhone单元格高度

    标题“根据内容动态调整iPhone单元格高度”涉及到的关键点是,当单元格内的文本内容发生变化时,单元格的高度能够自适应地进行调整,以确保所有文本都能清晰、完整地显示,提升用户体验。这一功能在诸如UITableView...

    IOS应用源码之自制 iPhone DataGrid 数据列表组件,支持行列锁定Grid.zip

    本压缩包“IOS应用源码之自制 iPhone DataGrid 数据列表组件,支持行列锁定Grid.zip”提供了一个自定义的数据网格解决方案,特别适合于需要展示表格形式信息的应用场景。下面我们将深入探讨这个源码中的关键知识点。...

    TableViewCellAutoLayoutDemo:iOS8 cell 自适应

    示例项目演示了iOS 8中的自调整表格视图单元格大小,使用UITableViewCell中的“自动布局”来实现具有可变行高的动态布局。 该项目是一个通用应用程序,将在iPhone和iPad上运行。 此实现仅与iOS 8及更高版本兼容。 ...

    tableview实现2列效果

    默认情况下,UITableView会自适应填充屏幕宽度,而我们的目标是将其分为两等份,每份显示一列内容。 步骤1:创建自定义UITableViewCell 为了实现2列效果,我们需要创建一个自定义的UITableViewCell子类。在这个子类...

    ios-sb及xib Autolayout适配九宫格图片.zip

    在iOS开发中,适配不同屏幕尺寸和分辨率是一项重要的任务,`AutoLayout`是苹果提供的一种解决方案,使得用户界面能够自适应各种设备和方向。在这个名为"ios-sb及xib Autolayout适配九宫格图片.zip"的压缩包中,包含...

    新闻客户端2代码完整版.7z

    9. 自适应布局:利用AutoLayout和Size Classes实现界面在不同屏幕尺寸上的自适应,保证在iPhone和iPad上都能良好显示。 10. 测试与调试:包括单元测试、集成测试和真机调试,确保应用的稳定性和可靠性。 这个...

    IOS应用源码Demo-视觉效果很好的table view美化效果demo-毕设学习.zip

    4. 自适应布局:在不同尺寸和方向的屏幕上,table view需要能正确地自适应。iOS的Auto Layout和Size Classes可以协助开发者实现这一点,使界面在iPhone和iPad上都有良好的显示效果。 5. 数据源和代理方法:Table ...

    ios源码之超炫的电子书书架管理工具应用.rar

    源码中应包含使用Auto Layout创建自适应布局的示例,确保在iPhone和iPad等不同设备上都能呈现良好的视觉效果。 4. **CollectionView**:用作书架界面的主要组件,它能够高效地展示大量书籍封面,支持滚动和动态加载...

    ios 三级列表

    10. **适配不同屏幕尺寸**:确保三级列表在各种屏幕尺寸上都能正常工作,需要考虑响应式设计和Auto Layout,使界面能在iPhone和iPad上自适应布局。 总的来说,实现iOS三级列表涉及到了数据结构、用户界面设计、性能...

    swift-PHPHubforiOS是PHPHub的官方iOS客户端

    本文将深入探讨如何使用Swift来构建“PHPHub for iOS”这个官方客户端,一个专为iPhone和iPad设计的应用程序。 一、Swift基础与项目配置 在开始开发前,我们需要了解Swift的基础知识,包括变量、常量、数据类型、...

    IOS界面图文混排demo

    1. **AutoLayout**:为了使界面适应不同尺寸的屏幕,如iPhone和iPad,开发者通常会使用AutoLayout来定义视图之间的约束,确保元素在屏幕上的位置和大小能够自适应。 2. **NSAttributedString**:这是iOS中的一个...

    仿网易新闻评论+模糊半透明图层

    - **UITableView**:展示评论内容通常采用UITableView,每个评论作为一个Cell,自定义UITableViewCell来呈现评论的各个部分。 - **用户交互**:支持点赞、回复、删除等操作,需处理相应的事件响应。 2. **模糊...

    swift-UITableView:使用Swift语言和自动布局约束+大小类

    - **创建UITableViewCell子类**:为自定义单元格样式,通常会创建一个继承自`UITableViewCell`的子类。在这里,你可以设置UI元素并添加约束。利用Swift的强类型特性,可以使代码更易读、更安全。 - **使用Auto ...

Global site tag (gtag.js) - Google Analytics