UITableview单元子视图的高度大于单元

UITableview单元子视图的高度大于单元,uitableview,subviews,Uitableview,Subviews,@大家好 我有一个很有趣的问题。 实际上,我有一些子视图,它们的高度可以大于单元本身的高度(这是我的设计所必需的)。例如,单元“A”高度为40,而子视图高度为70 我可以显示较大的子视图,但当单元格A离开屏幕(我滚动到顶部)时,其子视图也会消失(明显)。但这会产生不期望的效果,因为之前延伸到单元的较大子视图(如容器单元下方的“B”)突然消失 我曾尝试在willDisplayCell委托方法中将单元格背景设置为透明,但没有成功 下面是我的相关方法,如果有人想看的话 - (UITableViewCe

@大家好

我有一个很有趣的问题。 实际上,我有一些子视图,它们的高度可以大于单元本身的高度(这是我的设计所必需的)。例如,单元“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;
}
如果我不是很清楚,请原谅,但这是我能解释的最好的情况


我想显示像图片一样的视图

如果必须这样做,您可以使用一个简单的技巧:

  • 将表格的y原点移动到一个负值,该负值等于视图在单元格下方的延伸量,例如原点-30px
  • 将桌子的高度提高相同的数量,即使其高出30像素
  • 将表格的顶部内容插图增加相同数量,即增加30px
  • 实际上,您所做的是将表视图扩展到屏幕外,同时保持单元格的原始位置。由于表格视图延伸到屏幕外,因此在单元格下方延伸的部分滚动到屏幕外之前,单元格将不会退出队列


    下面是一个演示技巧的示例。

    您好,您的解决方案看起来不错,但我以前不知道子视图的高度。实际上,我正在尝试制作一个日历应用程序,我将把dayview放在上面的单元格中。因此,每天都可以包含延长这一天的事件。我可以实时了解事件高度。您可以添加任意多的填充。因此,提出一个最大高度并使用它。当然,这种方式有损于使用表视图(单元格的有效回收)的目的。但是,如果成功的话。否则,考虑一个具有自定义布局或简单滚动视图的集合视图。嘿,我尝试了ScLabView,我认为这是合适的。我问了另一个关于这个的问题,因为好像我们向上滚动以查看前一个dayview,那么它与此相关。如果你看的话,我会非常感激的。