Получение области ячеек

Требования к операционной системе: 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];

См. также:

Примеры использования компонентов