UITableview ячейка subview больше высоты, чем ячейка
@ Все Привет
У меня довольно интересная проблема. На самом деле у меня есть подпредставления, которые могут быть больше по высоте, чем сама высота ячейки (это требуется для моего дизайна). Например, высота ячейки "А" равна 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/ image.
1 ответ
Если вы должны сделать это, вы можете использовать простой трюк:
- Переместите исходную точку y таблицы к отрицательному значению, равному величине, которую ваше представление расширяет ниже ячейки, например origin -30px.
- Увеличьте высоту стола на ту же величину, то есть сделайте ее на 30 пикселей выше.
- Увеличьте верхнюю вставку содержимого таблицы на ту же величину, т.е. увеличьте на 30 пикселей.
Что вы фактически сделали, так это расширили представление таблицы вне экрана, сохраняя при этом исходное положение ячеек. Так как табличное представление выходит за пределы экрана, ячейка не будет удалена из очереди, пока часть, которая проходит ниже ячейки, не прокрутилась за пределы экрана.
Вот пример проекта, демонстрирующий трюк.