Требования к операционной системе: iOS 5.0 и выше.
Мобильное устройство: iPad.
В данном примере реализовано получение области ячеек и вывод в консоль приложения основной информации о ней: признак того, является ли область ячеек пустой, индексы столбцов и их позиции по оси X, индексы строк и их позиции по оси Y. Также для родительской таблицы полученной области устанавливается отображение справа налево, задаётся новый стиль для ячеек столбца и строки нажатой ячейки.
Для выполнения примера необходимо разместить взамен метода executeExample класса ViewController (см. раздел «Создание простой электронной таблицы») следующий код:
-(void) executeExample{
// Разрешаем выделение ячеек таблицы
[contr setCanSelect:YES];
};
// Обрабатываем событие изменения выделения таблицы
- (void)gridViewSelectionChanged:(NuGridView *)gridView;
{
// Получаем выделенную область таблицы
NuGridSelectionArea *selectionArea = [gridView selectionArea];
// Получаем область ячеек
NuGridCellArea *cellArea = [[gridView selectionArea] cellArea];
// Устанавливаем родительскую таблицу
[cellArea setParentGrid:[selectionArea parentGrid]];
// Устанавливаем отображение таблицы справа налево
[[cellArea parentGrid] setIsRightToLeft: YES];
// Выводим признак того, является ли область ячеек пустой
NSLog(@"%@ %hhd", @"Область ячеек является пустой:", [cellArea isEmpty]);
// Выводим индексы столбцов и их позицию по оси X, входящих в область ячеек
NSString *colIndexes = @"Индексы столбцов:";
for (int i = 0; i-[[cellArea columns] count]; i++)
{
NSString *index = [NSString stringWithFormat:@"%d",[[[cellArea columns] objectAtIndex:i] columnIndex]];
NSString *position = [NSString stringWithFormat:@"%@",[[cellArea columnsXPositions] objectAtIndex:i]];
NSString *resultString = [NSString stringWithFormat:@" %@ [%@]; ", index, position];
colIndexes = [colIndexes stringByAppendingString:resultString];
}
NSLog(@"%@", colIndexes);
// Выводим индексы строк и их позицию по оси Y, входящих в область ячеек
NSString *rowIndexes = @"Индексы строк:";
for (int i = 0; i-[[cellArea columns] count]; i++)
{
NSString *index = [NSString stringWithFormat:@"%d",[[[cellArea rows] objectAtIndex:i] rowIndex]];
NSString *position = [NSString stringWithFormat:@"%@",[[cellArea rowsYPositions] objectAtIndex:i]];
NSString *resultString = [NSString stringWithFormat:@" %@ [%@]; ", index, position];
rowIndexes = [rowIndexes stringByAppendingString:resultString];
}
NSLog(@"%@", rowIndexes);
}
// Обрабатываем событие нажатия на ячейку таблицы
- (void)gridView:(NuGridView *)gridView wasTouchedInCell:(NuGridCell *)cell {
// Определяем новый стиль
NuGridCellStyle *newStyle = [NuGridCellStyle deafultStyle];
[newStyle setBackgroundColor:[UIColor blueColor]];
[newStyle setBorderWidth:1];
[newStyle setBorderColor:[UIColor greenColor]];
// Устанавливаем стиль для ячеек столбца и строки указанной ячейки
[[cell column] setStyle:newStyle];
[[cell row] setStyle:newStyle];
}
Выделим ячейку таблицы, нажав на неё.
В результате таблица будет отображена справа налево, нажатая ячейка будет выделена, будет изменен стиль ячеек, входящих в строку и столбец нажатой ячейки:

Также в консоли среды разработки будет выведена основная информация об области ячеек:
Область ячеек является пустой: 0
Индексы столбцов: 2 [213];
Индексы строк: 2 [133];
См. также: