转自: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高度主要涉及以下几个步骤: 1. **启用自动布局(Auto Layout)**:在iOS开发中,我们通常使用Auto Layout来定义视图的约束,以便根据内容自动调整大小。在UITableViewCell中,确保所有...
在实现动态计算UITableViewCell高度时,关键步骤如下: 1. **创建自定义UITableViewCell**: 首先,我们需要为UITableView创建一个自定义子类,这将使我们能够添加所需的视图和设置约束。在子类中,我们可以使用`...
为了实现动态高度,我们需要遵循UITableViewDataSource协议,并实现其中的`tableView(_:heightForRowAt:)`方法。这个方法会根据传入的indexPath返回对应cell的高度。Swift中的这个API允许我们根据实际的数据内容动态...
UITableViewCell的动态高度计算一直是一个交流讨论的话题,也已经有了很多实现的机制,但更多的是需要一些扩展类什么的,还有需要计算什么的,使用起来比较麻烦。因此这里推荐一种自动计算高度的方法,他是在我的...
本文将深入探讨`UITableView`中`UITableViewCell`高度自适应的实现方法。 首先,我们需要理解`UITableView`的工作机制。默认情况下,`UITableView`会为每个单元格分配一个固定的高度,这通常是通过`tableView(_:...
在设计用户界面时,为了提供良好的用户体验,我们希望`UITableViewCell`的高度能够根据内容自动调整,这就是所谓的`UITableViewCell`自适应高度。 `UITableView`的高度自适应功能主要是通过重写`...
在iOS开发中,UITableView是展示数据列表的一种常见控件,其内部的单元格(UITableViewCell)通常需要根据内容动态调整高度。这个过程涉及到自动布局(Auto Layout)和UITableView的自适应高度计算。本知识点将深入...
当数据内容不固定,每个单元格(UITableViewCell)需要根据其内容动态调整高度时,就需要实现自定义的cell高度计算。本文将深入探讨如何通过代码创建高度不一致的UITableViewCell,并提供一种设计模式。 首先,了解...
这就需要用到Auto Layout来实现动态高度的功能。本文将详细介绍如何在UITableViewCell中使用Auto Layout来实现内容动态调整高度。 首先,了解Auto Layout的基本概念。Auto Layout是一种布局系统,用于定义视图之间...
在iOS开发中,`UITableViewCell`的高度自适应是一个关键的特性,它使得表格视图能够根据内容动态调整单元格的高度,从而提供更好的用户体验。这个话题主要涉及到`UITableView`和`UITableViewCell`的交互,以及Auto ...
1. **动态高度计算**: 在UITableView中,每个单元格(UITableViewCell)的高度通常是固定的,但为了提供更好的用户体验,有时我们需要根据内容动态调整单元格的高度。在Swift中,可以通过重写`UITableViewDataSource...
6. 动态高度:在实现输入界面时,可能需要根据内容动态调整单元格的高度。通过实现`- tableView:heightForRowAtIndexPath:`,可以根据需要计算每个单元格的适当高度。 7. 数据模型绑定:为了将数据绑定到视图,需要...
为了实现动态高度,我们需要重写`tableView(_:estimatedHeightForRowAt:)`和`tableView(_:heightForRowAt:)`。这两个方法分别用于设置每个单元格的预估高度和实际高度。 在`SoolyMoment`项目中,可能包含一个名为`...
如果使用AutoLayout,可以通过修改约束(constraints)来实现动态高度,例如设置按钮的heightAnchor与一个可变的Height约束相关联,然后根据需求改变Height约束的constant值。 为了响应滑动事件,我们需要在...
综上所述,实现UITableView和UITableViewCell涉及多个步骤,从创建表格到数据源和委托方法的设置,再到自定义单元格和处理用户交互,每一个环节都是至关重要的。在实际开发中,我们需要不断优化和调整,以提供最佳的...
`动态改变UITableViewCell高度`是常见的需求,尤其是在处理含有不固定高度内容的cell时,如包含图片、文本等。本示例源代码提供了解决这个问题的一个解决方案,由开发者D_索隆编写,并遵循Zlib授权协议。 首先,...
5. 动态高度:根据内容自动调整Cell的高度,使其适应不同长度的文本或其他元素。 在压缩包的示例代码中,你可能会看到如何实现上述功能的示例。通过学习和理解这些代码,你可以掌握自定义UITableViewCell的关键技巧...
本话题将深入探讨如何实现UITableViewCell的自定义,特别是实现等高的自定义。 一、UITableViewCell自定义基础 自定义UITableViewCell主要涉及以下几个方面: 1. 创建UITableViewCell子类:通过继承...
4. 自适应高度:动态计算单元格的高度,根据内容自动调整。 五、注意事项 1. 为了提高性能,应使用`dequeueReusableCellWithIdentifier:`方法复用单元格,避免不必要的内存开销。 2. 在自定义过程中,确保遵循苹果...