Требования к операционной системе: iOS 5.0 и выше.
Мобильное устройство: iPad.
В данном примере реализовано изменение ширины выбранной ячейки таблицы, а также вывод в консоль среды разработки размера области изменения ширины ячейки. Также изменяются цветовые настройки элемента изменения размера и картинка маркеров изменения размера.
Для выполнения примера необходимо разместить взамен метода executeExample класса ViewController (см. раздел «Создание простой электронной таблицы») следующий код:
-(void) executeExample{
// Устанавливаем цвет элемента изменения размера
[contr setResizerColor:[UIColor redColor]];
// Устанавливаем цвет границы элемента изменения размера
[contr setResizerBorderColor:[UIColor greenColor]];
// Устанавливаем новую картинку маркеров элемента изменения размера
[contr setResizerHandleImage:[UIImage imageNamed:@"circle.png"]];
// Создаем элемент изменения размера для таблицы
NuGridResizer *resizer = [NuGridResizer resizerForGridView:[contr gridView]];
// Инициализируем элемент изменения размера
[resizer initWithGrid: [contr gridView]];
// Изменяем размеры горизонтальной области, используемой для изменения размера
CGSize size = CGSizeMake(90, 90);
[resizer setLeftRightSelectionTouchAreaSize:size];
[contr setLeftRightSelectionTouchAreaSize:size];
// Устанавливаем элемент изменения размера
[[contr gridView] setValue:resizer forKey:@"m_resizer"];
// Устанавливаем начальный размер ширины изменяемой ячейки
colWidth = 80;
};
// Обрабатываем событие нажатия на ячейку таблицы
- (void)gridView:(NuGridView *)gridView wasTouchedInCell:(NuGridCell *)cell {
// Начинаем изменять ширину ячейки
[gridView addSubview:[gridView resizer]];
[[gridView resizer] resizeWidthForCell: cell];
}
// Обрабатываем событие изменения ширины ячейки
- (void)gridView:(NuGridView *)gridView widthChangeNeeded:(double)newWidth forCell:(NuGridCell *)cell
{
// Завершаем изменение ячейки, если ее ширина превысила 400 пикселей
if(newWidth > 400)
{
[[gridView resizer] finish];
}
// Сохраняем значение ширины ячейки
colWidth = newWidth;
// Растягиваем область изменения размера после того, как она была изменена
[[gridView resizer] stretchAfterChanging];
// Выводим размеры области изменения размера
NSInteger frameWidth = [[gridView resizer] originFrame].size.width;
NSInteger frameHeight = [[gridView resizer] originFrame].size.height;
NSLog(@"%@ (%d, %d)", @"Размеры области изменения размера:", frameWidth, frameHeight);
}
Также необходимо разместить взамен метода widthForColumn класса ViewController следующий код:
// Задаем ширину столбца
- (double)gridView:(NuGridView *)gridView widthForColumn:(NSInteger)columnNumber
{
if(columnNumber == 2)
{
return colWidth;
}
else
{
return 80;
}
}
Нажмем на любую ячейку таблицы, которая находится в столбце с номером 2, после чего изменим её ширину, потянув за маркер.
В результате ширина выбранной ячейки была изменена:

Также при каждом изменении размера в консоль среды разработки было выведено значение размеров области изменения ширины ячейки:
Размеры области изменения размера: (127, 283)
См. также: