Требования к операционной системе: iOS 5.0 и выше.
Мобильное устройство: iPad.
В данном примере описывается реализация подсветки ячеек. После его запуска выполняются следующие операции:
устанавливаются и удаляются параметры шрифта текста в подсвеченной ячейке;
устанавливается и удаляется цвет заливки в подсвеченной ячейке;
устанавливается и удаляется текст в подсвеченной ячейке.
Для выполнения примера необходимо разместить взамен метода executeExample класса ViewController (см. раздел «Создание простой электронной таблицы») следующий код:
-(void) executeExample {
// Получаем тему оформления таблицы
NuGridTheme *theme = [proxyDatasource gridViewTheme:[contr gridView]];
// Получаем стиль по умолчанию для всех ячеек, кроме заголовков
NuGridCellStyle *style = [theme defaultStyle];
// Определяем параметры шрифта текста в подсвеченной ячейке
[style setHighlightFont:[UIFont fontWithName:@"Courier New" size:20]];
// Определяем цвет заливки в подсвеченной ячейке
[style setHighlightBackgroundColor:[UIColor blueColor]];
// Определяем цвет текста в подсвеченной ячейке
[style setHighlightTextColor:[UIColor whiteColor]];
};
// Определяет, разрешать ли подсветку ячейки при нажатии на неё
-(BOOL) gridView:(NuGridView *)gridView cellShouldHighlightOnTouchDown:(NuGridCell *)cell {
if ([cell isRowHeader] | [cell isColumnHeader]) {
// Снимаем подсветку со всех ячеек таблицы
return NO;
} else {
// Разрешаем подсветку для всех ячеек, не являющихся заголовками
return YES;
}
}
// Определяет, разрешать ли подсветку ячейки с экспандером при нажатии на неё
-(BOOL) gridView:(NuGridView *)gridView cellShouldHighlightOnExpanderTouchDown:(NuGridCell *)cell {
return [self gridView:gridView cellShouldHighlightOnTouchDown:cell];
}
// Обрабатывает двойное касание по ячейке таблицы
- (void)gridView:(NuGridView *)gridView wasDoubleTouchedInCell:(NuGridCell *)cell {
if ([self gridView:gridView cellShouldHighlightOnExpanderTouchDown:cell]) {
[cell setIsHighLighted:![cell isHighLighted]];
if ([cell isHighLighted]) {
// Закрашиваем фон ячейки соответствующим цветом
[cell setBackgroundColor:[[cell style] highlightBackgroundColor]];
} else {
// Применяем стиль по умолчанию
NuGridCellStyle *style = [proxyDatasource gridViewGetDefaultStyle:[contr gridView]];
[cell setBackgroundColor:[style backgroundColor]];
}
} else {
// При выборе заголовков таблицы удаляем подсветку со всех ячеек
NuGridCellStyle *style = [proxyDatasource gridViewGetDefaultStyle:[contr gridView]];
[proxyDatasource gridView:[contr gridView] setStyle:style forRow:[cell rowNumber]];
}
}
// Обрабатывает двойное касание по столбцу таблицы
-(void)gridView:(NuGridView *)gridView wasDoubleTouchedInColumn:(NuGridColumn *)column {
NSLog(@"Выбрана ячейка в столбце с номером %d", [column columnNumber]);
}
// Обрабатывает двойное касание по строке таблицы
-(void)gridView:(NuGridView *)gridView wasDoubleTouchedInRow:(NuGridRow *)row {
NSLog(@"Выбрана ячейка в строке с номером %d", [row rowNumber]);
}
В результате выполнения примера для ячеек, не являющихся заголовками, после двойного касания будет установлен шрифт текста «Courier New» с размером 20, заливка синего цвета и белый цвет шрифта:

В консоли среды разработки будет выведена информация о том, какая ячейка была нажата:
Выбрана ячейка в столбце с номером 1
Выбрана ячейка в строке с номером 1
После повторного двойного касания данной ячейки она примет первоначальный вид. Если дважды нажать на заголовок строки и столбца, то подсветка будет удалена со всех ячеек таблицы:

Теперь удалим параметры шрифта текста, заливки и цвет текста для всех подсвеченных ячеек таблицы, добавив в метод executeExample следующие строки:
// Удаляем цвет заливки в подсвеченной ячейке [style removeHighlightBackgroundColor]; // Удаляем параметры шрифта в подсвеченной ячейке [style removeHighlightFont]; // Удаляем цвет текста в подсвеченной ячейке [style removeHighlightTextColor];
После выполнения примера установленные настройки для подсвеченных ячеек будут удалены. Теперь ячейка, выбранная двойным касанием, будет иметь фон заливки и текст чёрного цвета:

См. также: