UITableview 单元格子视图的高度比单元格大
Posted
技术标签:
【中文标题】UITableview 单元格子视图的高度比单元格大【英文标题】:UITableview cell subview larger height then cell 【发布时间】:2013-08-19 21:23:12 【问题描述】:@大家好
我有一个非常有趣的问题。 实际上我有子视图,其高度可以大于单元格高度本身(它是我的设计所必需的)。例如,单元格“A”的高度为 40,而子视图的高度为 70。
我可以显示更大的子视图,但是当单元格 A 离开屏幕(我滚动到顶部)时,它的子视图也会消失(明显)结果。但这会产生不希望的效果,因为较大的子视图之前扩展到单元格,容器单元格下方的“B”突然消失。
我尝试在 willDisplayCell 委托方法中将单元格背景设置为透明,但没有成功。
如果有人想看,下面是我的相关方法
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
static NSString *MyIdentifier = @"MyIdentifier";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:nil];
if (cell == nil)
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault
reuseIdentifier:MyIdentifier] autorelease];
cell.selectionStyle = UITableViewCellSelectionStyleNone;
NSArray *newArray = [[dataDictionary allKeys] sortedArrayUsingSelector: @selector(compare:)];
[cell.contentView addSubview: [[[dataDictionary objectForKey:[newArray objectAtIndex:indexPath.section]] objectForKey:@"DayView"] objectAtIndex:indexPath.row]];
return cell;
如果我不是很清楚,请原谅我,但这是最好的,我可以解释我的情况。
我想显示像 http://postimg.org/image/e5ok5hybl/ 图像这样的视图。
【问题讨论】:
【参考方案1】:如果你必须这样做,你可以使用一个简单的技巧:
-
将表格的 y 原点移动到一个负值,该负值等于您的视图在单元格下方的延伸量,例如原点 -30 像素。
将表格高度提高相同的量,即提高 30 像素。
将表格的顶部内容插入增加相同的量,即增加 30px。
您实际上所做的是在屏幕外扩展表格视图,同时保持单元格的原始位置。由于表格视图延伸到屏幕外,因此单元格将不会出列,直到单元格下方延伸的部分滚动到屏幕外。
这是一个 sample project 演示技巧。
【讨论】:
嗨,伙计,您的解决方案似乎很好,但我以前不知道子视图的高度。实际上我正在尝试制作日历应用程序,我将把 dayview 放在顶部单元格上。所以每一天都可以包含延长这一天的事件。我实时了解事件高度。 您可以添加任意数量的填充。所以想出一个最大高度并使用它。 当然,这种方式违背了使用表格视图的目的(有效回收单元格)。但是,嘿,如果它有效。否则,请考虑使用自定义布局或普通滚动视图的集合视图。 嘿,伙计,我尝试了 scrollView,我认为它是合适的。我已经问过另一个问题,因为好像我们向上滚动查看前一天视图然后***.com/questions/18317711/… 与此相关。如果你能看到它,我将不胜感激。以上是关于UITableview 单元格子视图的高度比单元格大的主要内容,如果未能解决你的问题,请参考以下文章
UITableview 单元格高度在 iOS 14.0 中的滚动表视图上发生变化