Требования к операционной системе: iOS 5.0 и выше.
Мобильное устройство: iPad.
В данном примере описывается выделение области таблицы. После его запуска выполняются следующие операции:
выделяется заданный диапазон ячеек таблицы;
поверх выделения отображается надпись с текстом, выровненным по центру и сообщающим о выделении ячеек;
через 3 секунды данная надпись исчезает, при этом выделение ячеек таблицы остаётся.
Для выполнения примера необходимо разместить взамен метода executeExample класса ViewController (см. раздел «Создание простой электронной таблицы») следующий код:
-(void)executeExample {
// Разрешаем выделение в таблице
[contr setCanSelect:YES];
[[contr gridView] setCanSelect:[contr canSelect]];
// Выделяем область в таблице
NuGridView *gridView = [contr gridView];
[contr selectAreaFromRow:[gridView rowWithNumber:1] column:[gridView columnWithNumber:1]
toRow:[gridView rowWithNumber:2] column:[gridView columnWithNumber:2]];
};
// Вызывается после выделения области в таблице
- (void)gridView:(NuGridView *)gridView areaSelected:(NuGridSelectionArea *)area
{
// Определяем расположение и размеры метки
CGRect rect = [area bounds];
CGPoint position = [area center];
rect.origin.x = position.x - rect.size.width/2;
rect.origin.y = position.y - rect.size.height/2;
// Создаём метку
[self showViewWithText:@"Область выделена" inRect:rect];
}
-(void)showViewWithText:(NSString*)text inRect:(CGRect)rect {
UILabel *label = [[UILabel new] autorelease];
label.textColor = [UIColor redColor];
[label setText:text];
// Выравниваем текст по центру
[label setTextAlignment:NSTextAlignmentCenter];
[label setFrame: rect];
// Отображаем метку
[[contr gridView] addSubview:label];
}
// Удаляет отображаемый элемент
- (void)hideView:(UIView *)view {
[view removeFromSuperview];
}
// Вызывается перед изменением разметки таблицы
- (void)gridViewActionBeforeLaying:(NuGridView *)gridView {
if([gridView canSelect]) {
// Отображаем метку с оповещением о выделении области таблицы
[self gridView:gridView areaSelected:[gridView selectionArea]];
[gridView setCanSelect:NO];
}
}
// Вызывается после изменения разметки таблицы
- (void)gridViewActionAfterLaying:(NuGridView *)gridView {
for (UIView *view in [gridView subviews]) {
if([view isKindOfClass:[UILabel class]]) {
// Скрываем все метки через 3 секунды
[self performSelector:@selector(hideView:) withObject:view afterDelay:3.0];
}
}
}
В результате выполнения примера был выделен диапазон ячеек таблицы, охватывающий строки и столбцы с номерами 1 и 2. Поверх выделения была отображена надпись с текстом, выровненным по центру и сообщающим о выделении ячеек:

Через 3 секунды данная надпись была удалена, при этом выделение ячеек таблицы осталось:

См. также: