Требования к операционной системе: iOS 5.0 и выше.
Мобильное устройство: iPad.
В данном примере реализована установка для источника данных таблицы нового стиля с измененным шрифтом.
Также в консоль среды разработки выводится значение высоты строк таблицы. При нажатии на ячейку таблицы происходит последовательное выделение строки и столбца, в которых находится ячейка, и вывод значения размеров выделенной области, после чего выделение снимается. В консоль среды разработки также выводятся значения позиции строки и столбца ячейки, позиции заголовков строки и столбца, и значение полученной ячейки.
Для выполнения примера необходимо разместить взамен метода executeExample класса ViewController (см. раздел «Создание простой электронной таблицы») следующий код:
-(void) executeExample{
// Получаем таблицу
NuGridView *gridView = [contr gridView];
// Получаем объект, предназначенный для работы с таблицей
ViewController *viewContr = [gridView gridDelegate];
// Выводим высоту строки таблицы
NSInteger rHeight = [viewContr gridView:(NuGridView *)gridView heightForRow:0];
NSLog(@"%@ %d", @"Высота строки таблицы:", rHeight);
// Определяем стиль
NuGridCellStyle *cellStyle = [NuGridCellStyle deafultStyle];
// Удаляем изображения, используемые свёрнутым и раскрытым экспандером
[cellStyle removeExpandedImage];
[cellStyle removeCollapsedImage];
[cellStyle setExpanderImageMargin:0];
// Устанавливаем новый шрифт
[cellStyle setFont:[UIFont fontWithName:@"Arial" size:25]];
// Получаем источник данных
ProxyDataSource *dataSource = [gridView dataSource];
// Изменяем стиль по умолчанию
[dataSource gridView:(NuGridView *)gridView setDefaultStyle:cellStyle];
// Обновляем размеры ячеек
[gridView contentSizeUpdated];
// Обновляем таблицу
[gridView dataSourceUpdated];
};
// Обрабатываем событие нажатия на ячейку таблицы
- (void)gridView:(NuGridView *)gridView wasTouchedInCell:(NuGridCell *)cell {
// Разрешаем выделение ячеек таблицы
if(![gridView canSelect]){
[[gridView controller] setCanSelect:YES];
}
// Выделяем столбец, в котором находится нажатая ячейка
[[gridView controller] selectColumnByCell:cell];
// Получаем область выделения столбца, если он выделен, и выводим ее размеры
if([[gridView controller] isColumnWithNumberSelected:[cell columnNumber]])
{
NuGridSelectionArea *colSelArea = [gridView selectionAreaForColumnNumber:[cell columnNumber]];
NSLog(@"%@ (%f, %f)", @"Размер области выделения столбца:", [colSelArea originFrame].size.width,
[colSelArea originFrame].size.height);
// Снимаем выделение
[[gridView controller] deselectColumnByCell:cell];
}
// Выделяем строку, в которой находится нажатая ячейка
[[gridView controller] selectRowByCell:cell];
// Получаем область выделения строки, если она выделена, и выводим ее размеры
if([[gridView controller] isRowWithNumberSelected:[cell rowNumber]])
{
NuGridSelectionArea *rowSelArea = [gridView selectionAreaForRowNumber:[cell rowNumber]];
NSLog(@"%@ (%f, %f)", @"Размер области выделения строки:", [rowSelArea originFrame].size.width,
[rowSelArea originFrame].size.height);
// Снимаем выделение
[[gridView controller] deselectRowByCell:cell];
}
// Запрещаем выделение ячеек таблицы
[[gridView controller] setCanSelect:NO];
// Получаем строку и столбец, в которых находится ячейка
NuGridRow *row = [gridView rowWithNumber:[cell rowNumber]];
NuGridColumn *col = [gridView columnWithNumber:[cell columnNumber]];
// Выводим позиции строки и столбца
NSLog(@"%@ %f",@"Позиция столбца ячейки:", [col xPosition]);
NSLog(@"%@ %f",@"Позиция строки ячейки:", [row yPosition]);
// Получаем строку и столбец заголовков ячейки
NuGridColumn *colHeader = [gridView headerColumnWithNumber: [cell columnNumber]];
NuGridRow *rowHeader = [gridView headerRowWithNumber: [cell rowNumber]];
// Выводим позиции строки и столбца заголовка ячейки
NSLog(@"%@ %f",@"Позиция столбца заголовка ячейки:", [colHeader xPosition]);
NSLog(@"%@ %f",@"Позиция строки заголовка ячейки:", [rowHeader yPosition]);
// Получаем ячейку по указанным столбцу и строке и выведем ее значение
NuTextGridCell *textCell = [gridView cellInRow:[cell rowNumber] column:[cell columnNumber]];
NSLog(@"%@ %@", @"Значение полученной ячейки:", [textCell value]);
}
В результате будет изменен стиль источника данных таблицы:

Нажмём на ячейку таблицы E4. В результате в консоль среды разработки будет выведена информация о таблице, информация о выделенных областях и полученной ячейке:
Высота строки таблицы: 50
Размер области выделения столбца: (80.000000, 250.000000)
Размер области выделения строки: (400.000000, 50.000000)
Позиция столбца ячейки: 373.000000
Позиция строки ячейки: 233.000000
Позиция столбца заголовка ячейки: 212.000000
Позиция строки заголовка ячейки: 132.000000
Значение полученной ячейки: 8
См. также: