Изменение высоты ячейки

Требования к операционной системе: iOS 5.0 и выше.

Мобильное устройство: iPad.

Описание

В данном примере реализовано изменение высоты выбранной ячейки таблицы.

Исходный код

Для выполнения примера необходимо разместить взамен метода executeExample класса ViewController (см. раздел «Создание простой электронной таблицы») следующий код:

-(void) executeExample{
    // Создаем элемент изменения размера для таблицы
    NuGridResizer *resizer = [NuGridResizer resizerForGridView:[contr gridView]];
    // Устанавливаем родительскую таблицу
    [resizer setParentGrid: [contr gridView]];
    // Изменяем размеры вертикальной области, используемой для изменения размера
    CGSize size = CGSizeMake(90, 90);
    [resizer setTopBottomSelectionTouchAreaSize:size];
    // Устанавливаем элемент изменения размера
    [[contr gridView] setValue:resizer forKey:@"m_resizer"];
    // Устанавливаем начальный размер высоты изменяемой ячейки
    rowHeight = 50;
};
 // Обрабатываем событие нажатия на ячейку таблицы
 - (void)gridView:(NuGridView *)gridView wasTouchedInCell:(NuGridCell *)cell {
     // Начинаем изменять высоту ячейки
     [gridView addSubview:[gridView resizer]];
     [[gridView resizer] resizeHeightForCell: cell];
 }
// Обрабатываем событие изменения высоты ячейки
- (void)gridView:(NuGridView *)gridView heightChangeNeeded:(double)newHeight forCell:(NuGridCell *)cell
{
    // Завершаем изменение размера ячейки, если ее высота превысила 300 пикселей
    if(newHeight > 300)
    {
        [[gridView resizer] finish];
    }
    // Сохраняем значение высоты ячейки
    rowHeight = newHeight;
    // Растягиваем область изменения размера после того, как она была изменена
    [[gridView resizer] stretchAfterChanging];
}

Также необходимо разместить взамен метода heightForRow класса ViewController следующий код:

// Задаем высоту строки
- (double) gridView:(NuGridView *)gridView heightForRow:(NSInteger)rowNumber
{
    if(rowNumber == 2)
    {
        return rowHeight;
    }
    else
    {
        return 50;
    }
}

Нажмем на любую ячейку таблицы, которая находится в строке с номером 2, после чего изменим её высоту, потянув за маркер.

В результате высота выбранной ячейки была изменена:

 

См. также:

Примеры использования компонентов