Требования к операционной системе: iOS 5.0 и выше.
Мобильное устройство: iPad.
В данном примере реализована обработка событий, связанных с обновлением источника данных таблицы, выделением области таблицы и касанием таблицы. После вызова всех событий происходит блокировка возможности их обработки.
Для выполнения примера необходимо разместить взамен метода executeExample класса ViewController (см. раздел «Создание простой электронной таблицы») следующий код:
-(void) executeExample{
// Устанавливаем возможность выделения таблицы
[contr setCanSelect: YES];
// Разрешаем обрабатывать события, связанные с обновлением источника данных
[contr setSendEventBeforeAndAfterDataSourceUpdate: YES];
};
- (void)gridView:(NuGridView *)gridView wasTouchedInColumn:(NuGridColumn *)column{
// Выводим сообщение о вызове события
NSLog(@"%@ %d", @"Выполнено касание к столбцу с номером", [column columnNumber]);
// Выделяем столбец с номером 2
[contr selectColumnByNumber: 2];
}
- (void)gridView:(NuGridView *)gridView wasTouchedInRow:(NuGridRow *)row{
// Получаем источник данных
ProxyDataSource *dataSource = [contr dataSource];
// Определяем стиль
NuGridCellStyle *cellStyle = [NuGridCellStyle deafultStyle];
// Удаляем изображения, используемые свёрнутым и раскрытым экспандером
[cellStyle removeExpandedImage];
[cellStyle removeCollapsedImage];
[cellStyle setExpanderImageMargin:0];
// Устанавливаем новый шрифт
[cellStyle setFont:[UIFont fontWithName:@"Arial" size:15]];
// Изменяем стиль по умолчанию
[dataSource gridView:(NuGridView *)[contr gridView] setDefaultStyle:cellStyle];
// Выводим сообщение о вызове события
NSLog(@"%@ %d", @"Выполнено касание к строке с номером", [row rowNumber]);
// Выделяем столбец с номером 2
[contr selectRowByNumber: 2];
// Запрещаем обрабатывать события, связанные с обновлением источника данных
[contr setSendEventBeforeAndAfterDataSourceUpdate: NO];
}
// Обрабатываем событие окончания обновления источника данных
- (void)gridViewActionAfterUpdate:(NuGridView *)gridView{
// Выводим сообщение о вызове события
NSLog(@"%@", @"Инициировано событие окончания изменения источника данных");
}
// Обрабатываем событие начала обновления источника данных
- (void)gridViewActionBeforeUpdate:(NuGridView *)gridView{
// Выводим сообщение о вызове события
NSLog(@"%@", @"Инициировано событие начала изменения источника данных");
}
// Обрабатываем событие, наступающее перед выделением строки таблицы
- (void)gridView:(NuGridView *)gridView actionBeforeRowWithNumberSelected:(NSInteger)rowNumber{
NSLog(@"%@ %d", @"Начато выделение строки с номером", rowNumber);
}
// Обрабатываем событие, наступающее перед выделением столбца таблицы
- (void)gridView:(NuGridView *)gridView actionBeforeColumnWithNumberSelected:(NSInteger)columnNumber{
NSLog(@"%@ %d", @"Начато выделение столбца с номером", columnNumber);
}
// Обрабатываем событие, наступающее после выделения строки таблицы
- (void)gridView:(NuGridView *)gridView actionAfterRowWithNumberSelected:(NSInteger)rowNumber{
NSLog(@"%@ %d", @"Закончено выделение строки с номером", rowNumber);
}
// Обрабатываем событие, наступающее после выделения столбца таблицы
- (void)gridView:(NuGridView *)gridView actionAfterColumnWithNumberSelected:(NSInteger)columnNumber{
NSLog(@"%@ %d", @"Закончено выделение столбца с номером", columnNumber);
// Запрещаем обрабатывать события, связанные с выделением таблицы
[contr setSendEventBeforeAndAfterSelection:NO];
}
Нажмём на заголовок любой строки таблицы.
В результате будет изменен стиль источника данных таблицы и выделена строка с номером 2:

Также в консоли среды разработки будет выведена информации о вызове обработанных событий:
Инициировано событие начала изменения источника данных
Инициировано событие окончания изменения источника данных
Выполнено касание к строке с номером 0
Начато выделение строки с номером 2
Закончено выделение строки с номером 2
Нажмём на заголовок произвольного столбца таблицы.
В результате будет выделен столбец с номером 2:

Также в консоли среды разработки будет выведена информация о вызове обработанных событий:
Выполнено касание к столбцу с номером 0
Начато выделение столбца с номером 2
Закончено выделение столбца с номером 2
После выполнения указанных действий будет запрещена обработка событий, связанных с выделением таблицы и обновлением источника данных. При повторных нажатиях на заголовки строк и столбцов таблицы сообщения о вызове соответствующих событий выводиться не будут.
См. также: