2013-08-19 152 views
1

@All你好UITableview cell subview larger height then cell

它是我非常有趣的问题。 其实我有子视图可以在高度上更大,然后单元格高度本身(它是我的设计所需的)。例如,单元格“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/图像的意见。

回答

2

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

  1. 移动工作台的y原点为负值等于你的观点扩展了电池下方的量,例如起源-30px。
  2. 使桌子高度增加相同的量,即使其高30px。
  3. 将表格的顶部内容插入增加相同的数量,即增加30px。

你已经有效地做了什么,是在保持原单元格的原始位置的同时将表格视图扩展到屏幕外。由于表格视图在屏幕外延伸,单元格将不会出列,直到单元格下方的部分滚动出屏幕。

这是一个sample project演示的窍门。

+0

你好,你的解决方案似乎很好,但我不知道子视图的高度。其实我想制作日历应用程序,我将把dayview放在顶部单元格上。所以每一天都可以包含当天延伸的事件。我知道事件高度实时。 – Mann

+0

我想显示像http://postimg.org/image/e5ok5hybl/ – Mann

+0

意见您可以添加尽可能多的填充,只要你想。因此拿出一个最大高度并使用它。 –