2013-08-19 2 views
1

@Все HelloUITableview cell subview большая высота, чем ячейка

Его довольно интересная проблема у меня есть. На самом деле у меня есть subviews, которые могут быть больше по высоте, чем сама высота ячейки (ее требуется для моего дизайна). Например, высота ячейки «А» равна 40, а высота подвыражения = 70.

Я могу показать более крупный объект, но когда ячейка А уходит с экрана (я прокручиваю вверх), то ее подзапрос также исчезает (видимый) результат. Но это приводит к нежелательному эффекту, поскольку более крупное подобие, которое перед продолжением до ячейки говорит, что «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. Move у-начало таблицы отрицательное значение равно количеству Ваше мнение простирается ниже клетки, например, изначальный -30px.
  2. Увеличьте высоту стола на ту же величину, то есть на 30px выше.
  3. Увеличьте верхний вложенный контент таблицы на ту же сумму, то есть увеличите на 30 пикселей.

Фактически вы делаете расширенный просмотр таблицы вне экрана при сохранении исходного положения ячеек. Поскольку представление таблицы выходит за пределы экрана, ячейка не будет удалена до тех пор, пока часть, которая проходит под ячейкой, не прокрутит экран.

Описание: sample project демонстрирует трюк.

+0

Привет, ваше решение кажется прекрасным, но я не знаю высоты подзаголовков раньше. На самом деле, я пытаюсь сделать приложение Calendar, где я поставлю dayview в верхней ячейке. Поэтому каждый день может содержать событие, которое продолжается в этот день. я узнаю высоту события в реальном времени. – Mann

+0

Я хочу показать виды, такие как http://postimg.org/image/e5ok5hybl/ – Mann

+0

Вы можете добавить столько отступов, сколько захотите. Поэтому придумайте максимальную высоту и используйте это. –