Требования к операционной системе: iOS 5.0 и выше.
Мобильное устройство: iPad.
В главном методе примера реализовано изменение фонового цвета ячеек таблицы и вывод в консоль среды разработки рассчитанного размера указанной ячейки. В примере обработано событие нажатия на ячейку таблицы, для которой выполняются следующие действия:
устанавливается подсветка и ширина границ;
очищается информация об объединенных строках и столбцах при их наличии.
Также в консоль среды разработки выводятся следующие данные:
индекс строки и столбца ячейки, если она входит в состав объединенной ячейки;
идентификатор повторного использования;
размер ячейки и её строковое представление;
значения абсолютной позиции и позиции в видимой области таблицы столбца и строки, к которым принадлежит ячейка.
Для выполнения примера необходимо разместить взамен метода executeExample класса ViewController (см. раздел «Создание простой электронной таблицы») следующий код:
-(void) executeExample{
// Получаем ячейку
NuGridCell *cell = [proxyDatasource gridView:(NuGridView *)[contr gridView] cellInRow:1 inColumn:1];
// Получаем стиль ячеек
NuGridCellStyle *style = [cell style];
// Изменяем фоновый цвет ячеек
[style setBackgroundColor:[UIColor grayColor]];
// Рассчитываем и выводим размер ячейки на основе ее содержимого
CGSize size = [cell bestSize];
NSLog(@"%@ (%f, %f)", @"Рассчитанный размер ячейки:", size.width, size.height);
};
// Обрабатываем событие нажатия на ячейку таблицы
- (void)gridView:(NuGridView *)gridView wasTouchedInCell:(NuGridDecoratedCell *)cell {
// Устанавливаем подсветку ячейки
[cell setIsHighLighted:YES];
// Устанавливаем ширину границ ячейки
[cell setBorderWidth:2];
// Получаем количество столбцов и строк, принадлежащих объединенной ячейке
NSInteger includedColumnsCount = [[cell includedColumns ]count];
NSInteger includedRowsCount = [[cell includedRows] count];
// Очищаем информацию об объединенных строках и столбцах при их наличии
if((includedColumnsCount != 0) && (includedRowsCount != 0))
{
[cell clearIncludes];
}
// Если ячейка входит в состав объединенной ячейки, то выводим индексы ее строки и столбца
if([cell isLink])
{
NSLog(@"%@ %d", @"Индекс столбца:", [cell linkColumn]);
NSLog(@"%@ %d", @"Индекс строки:", [cell linkRow]);
}
// Выводим идентификатор повторного использования
NSLog(@"%@ %@", @"Идентификатор повторного использования:", [cell reuseIdentifier]);
// Выводим размеры ячейки
NSLog(@"%@ (%f, %f)", @"Размер ячейки:", [cell width], [cell height]);
// Выводим строковое представление данных ячейки
NSLog(@"%@ %@", @"Строковое представление данных ячейки:", [cell toString]);
// Получаем столбец, которому принадлежит ячейка
NuGridColumn *col = [cell column];
// Выводим абсолютную позицию столбца по оси X
NSLog(@"%@ %f", @"Абсолютная позиция столбца по оси X:", col.absoluteXPosition);
// Выводим позицию столбца по оси X в видимой области таблицы
NSLog(@"%@ %f", @"Позиция столбца по оси X в видимой области таблицы:", col.xPosition);
// Получаем строку, которой принадлежит ячейка
NuGridRow *row = [cell row];
// Выводим абсолютную позицию строки по оси Y
NSLog(@"%@ %f", @"Абсолютная позиция строки по оси Y:", row.absoluteYPosition);
// Выводим позицию строки по оси Y в видимой области таблицы
NSLog(@"%@ %f", @"Позиция строки по оси Y в видимой области таблицы:", row.yPosition);
};
В результате выполнения примера был изменен фоновый цвет ячеек, а в консоль среды разработки был выведен рассчитанный размер полученной ячейки:
Рассчитанный размер ячейки: (7.980000, 16.702000)
После нажатия на любую ячейку таблицы она станет подсвеченной и изменится ширина её границ:

Также в консоли среды разработки будет выведена информация о нажатой ячейке:
Идентификатор повторного использования: row
Размер ячейки: (80.000000, 50.000000)
Строковое представление данных ячейки: 2
Абсолютная позиция столбца по оси X: 133.000000
Позиция столбца по оси X в видимой области таблицы: 133.000000
Абсолютная позиция строки по оси Y: 83.000000
Позиция строки по оси Y в видимой области таблицы: 83.000000
См. также: