Требования к операционной системе: iOS 5.0 и выше.
Мобильное устройство: iPad.
В данном примере реализовано изменение области выделения таблицы. Сначала происходит выделение ячейки таблицы, затем множественное выделение столбцов, множественное выделение строк, выделение всей таблицы и после происходит очистка области выделения. Также в консоль среды разработки выводится значение последней нажатой ячейки, значение ширины столбца таблицы, количество выделенных строк и столбцов.
Для выполнения примера необходимо разместить взамен метода executeExample класса ViewController (см. раздел «Создание простой электронной таблицы») следующий код:
-(void) executeExample{
// Разрешаем выделение ячеек таблицы
[contr setCanSelect:YES];
// Разрешаем множественное выделение
[contr setMultiselect:YES];
};
// Обрабатываем событие нажатия на ячейку таблицы
- (void)gridView:(NuGridView *)gridView wasTouchedInCell:(NuGridCell *)cell {
// Выводим значение последней нажатой ячейки, если она не является заголовком
if(![[cell row] isHeader] & ![[cell column] isHeader])
{
NSLog(@"%@ %@", @"Значение последней нажатой ячейки:", [[[gridView controller] lastTouchedCell] value]);
ViewController *delegate = [contr delegate];
// Получаем объект, предназначенный для работы с таблицей и выводим ширину столбца
NSInteger columnWidth = [delegate gridView:(NuGridView *)gridView widthForColumn:0];
NSLog(@"%@ %d", @"Ширина столбца таблицы:", columnWidth);
}
}
- (void)gridView:(NuGridView *)gridView wasTouchedInRow:(NuGridRow *)row{
// Выделяем указанные столбцы таблицы, если в ней нет выделенных строк или столбцов
if([[[gridView controller] selectedColumns] count] == 0
& [[[gridView controller] selectedRows] count] == 0)
{
[[gridView controller] selectColumnByNumber:2];
[[gridView controller] selectColumnByNumber:0];
// Выводим количество выделенных столбцов
NSSet *set = [[gridView controller] selectedColumns];
NSLog(@"%@ %d",@"Количество выделенных столбцов:", set.count);
return;
}
if([[[gridView controller] selectedRows] count] == 0)
{ // Снимаем выделение с указанных столбцов
[[gridView controller] deselectColumnByNumber:0];
[[gridView controller] deselectColumnByNumber:2];
// Выделяем указанные строки таблицы, если в ней нет выделенных строк
[[gridView controller] selectRowByNumber:2];
[[gridView controller] selectRowByNumber:0];
// Выводим количество выделенных строк
NSSet *set = [[gridView controller] selectedRows];
NSLog(@"%@ %d",@"Количество выделенных строк:", set.count);
return;
}
// Снимаем выделение с указанных строк таблицы
[[gridView controller] deselectRowByNumber:0];
[[gridView controller] deselectRowByNumber:2];
// Выделяем всю область таблицы
[[gridView controller] selectAll];
}
- (void)gridView:(NuGridView *)gridView wasTouchedInColumn:(NuGridColumn *)column{
// Очищаем область выделения
[[gridView controller] clearSelection];
}
Нажмём на любую ячейку таблицы. В результате ячейка будет выделена:

В консоль среды разработки будет выведено значение нажатой ячейки и значение ширины столбца таблицы:
Значение последней нажатой ячейки: 4
Ширина столбца таблицы: 80
Нажмём на заголовок строки таблицы. В результате данного действия будут выделены 2 столбца таблицы:

В консоль среды разработки будет выведено количество выделенных столбцов:
Количество выделенных столбцов: 2
Нажмём ещё раз на заголовок строки таблицы. После этого будут выделены 2 строки таблицы:

В консоль среды разработки будет выведено количество выделенных строк:
Количество выделенных строк: 2
Снова нажмём на заголовок строки таблицы. В результате данного действия будет выделена вся таблица:

Теперь нажмём на заголовок любого столбца таблицы. После этого область выделения таблицы будет очищена.
См. также: