- (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高度`是常见的需求,尤其是在处理含有不固定高度内容的cell时,如包含图片、文本等。本示例源代码提供了解决这个问题的一个解决方案,由开发者D_索隆编写,并遵循Zlib授权协议。 首先,...
标题“根据内容动态调整iPhone单元格高度”涉及到的关键点是,当单元格内的文本内容发生变化时,单元格的高度能够自适应地进行调整,以确保所有文本都能清晰、完整地显示,提升用户体验。这一功能在诸如UITableView...
本压缩包“IOS应用源码之自制 iPhone DataGrid 数据列表组件,支持行列锁定Grid.zip”提供了一个自定义的数据网格解决方案,特别适合于需要展示表格形式信息的应用场景。下面我们将深入探讨这个源码中的关键知识点。...
示例项目演示了iOS 8中的自调整表格视图单元格大小,使用UITableViewCell中的“自动布局”来实现具有可变行高的动态布局。 该项目是一个通用应用程序,将在iPhone和iPad上运行。 此实现仅与iOS 8及更高版本兼容。 ...
默认情况下,UITableView会自适应填充屏幕宽度,而我们的目标是将其分为两等份,每份显示一列内容。 步骤1:创建自定义UITableViewCell 为了实现2列效果,我们需要创建一个自定义的UITableViewCell子类。在这个子类...
在iOS开发中,适配不同屏幕尺寸和分辨率是一项重要的任务,`AutoLayout`是苹果提供的一种解决方案,使得用户界面能够自适应各种设备和方向。在这个名为"ios-sb及xib Autolayout适配九宫格图片.zip"的压缩包中,包含...
9. 自适应布局:利用AutoLayout和Size Classes实现界面在不同屏幕尺寸上的自适应,保证在iPhone和iPad上都能良好显示。 10. 测试与调试:包括单元测试、集成测试和真机调试,确保应用的稳定性和可靠性。 这个...
4. 自适应布局:在不同尺寸和方向的屏幕上,table view需要能正确地自适应。iOS的Auto Layout和Size Classes可以协助开发者实现这一点,使界面在iPhone和iPad上都有良好的显示效果。 5. 数据源和代理方法:Table ...
源码中应包含使用Auto Layout创建自适应布局的示例,确保在iPhone和iPad等不同设备上都能呈现良好的视觉效果。 4. **CollectionView**:用作书架界面的主要组件,它能够高效地展示大量书籍封面,支持滚动和动态加载...
10. **适配不同屏幕尺寸**:确保三级列表在各种屏幕尺寸上都能正常工作,需要考虑响应式设计和Auto Layout,使界面能在iPhone和iPad上自适应布局。 总的来说,实现iOS三级列表涉及到了数据结构、用户界面设计、性能...
本文将深入探讨如何使用Swift来构建“PHPHub for iOS”这个官方客户端,一个专为iPhone和iPad设计的应用程序。 一、Swift基础与项目配置 在开始开发前,我们需要了解Swift的基础知识,包括变量、常量、数据类型、...
1. **AutoLayout**:为了使界面适应不同尺寸的屏幕,如iPhone和iPad,开发者通常会使用AutoLayout来定义视图之间的约束,确保元素在屏幕上的位置和大小能够自适应。 2. **NSAttributedString**:这是iOS中的一个...
- **UITableView**:展示评论内容通常采用UITableView,每个评论作为一个Cell,自定义UITableViewCell来呈现评论的各个部分。 - **用户交互**:支持点赞、回复、删除等操作,需处理相应的事件响应。 2. **模糊...
- **创建UITableViewCell子类**:为自定义单元格样式,通常会创建一个继承自`UITableViewCell`的子类。在这里,你可以设置UI元素并添加约束。利用Swift的强类型特性,可以使代码更易读、更安全。 - **使用Auto ...