【问题标题】:UITableview cell subview larger height then cellUITableview 单元格子视图的高度比单元格大
【发布时间】: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/ 图像这样的视图。

【问题讨论】:

    标签: uitableview subviews


    【解决方案1】:

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

    1. 将表格的 y 原点移动到一个负值,该负值等于您的视图在单元格下方的延伸量,例如原点 -30 像素。
    2. 将表格高度提高相同的量,即提高 30 像素。
    3. 将表格的顶部内容插入增加相同的量,即增加 30px。

    您实际上所做的是在屏幕外扩展表格视图,同时保持单元格的原始位置。由于表格视图延伸到屏幕外,因此单元格将不会出列,直到单元格下方延伸的部分滚动到屏幕外。

    这是一个 sample project 演示技巧。

    【讨论】:

    • 嗨,伙计,您的解决方案似乎很好,但我以前不知道子视图的高度。实际上我正在尝试制作日历应用程序,我将把 dayview 放在顶部单元格上。所以每一天都可以包含延长这一天的事件。我实时了解事件高度。
    • 您可以添加任意数量的填充。所以想出一个最大高度并使用它。
    • 当然,这种方式违背了使用表格视图的目的(有效回收单元格)。但是,嘿,如果它有效。否则,请考虑使用自定义布局或普通滚动视图的集合视图。
    • 嘿,伙计,我尝试了 scrollView,我认为它是合适的。我已经问过另一个问题,因为好像我们向上滚动查看前一天视图然后stackoverflow.com/questions/18317711/… 与此相关。如果你能看到它,我将不胜感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多