Создание экспандера

Требования к операционной системе: iOS 5.0 и выше.

Мобильное устройство: iPad.

Описание

В данном примере описывается создание экспандера в простой электронной таблице. После его запуска выполняются следующие операции:

Исходный код

Для выполнения примера необходимо разместить в теле метода executeExample класса ViewController (см. раздел «Создание простой электронной таблицы») следующий код:

// Получаем стиль ячеек, являющихся заголовками строк
NuGridCellStyle *headerStyle = [proxyDatasource gridViewGetDefaultStyleForRowHeader:[contr gridView]];
// Устанавливаем для родительской ячейки таблицы полужирное начертание
[headerStyle setBoldForParent:YES];
// Получаем ячейку таблицы с координатами A0
NuGridExpandableCell* startCell = (NuGridExpandableCell*)[proxyDatasource gridView:
[contr gridView] cellInRow:0 inColumn:0];
// Задаём для данной ячейки стиль по умолчанию
[startCell setStyle:[NuGridCellStyle deafultStyle]];
// Определяем ячейку таблицы, строка которой будет ограничивать свёрнутый диапазон
NuGridCell* endCell = [proxyDatasource gridView:[contr gridView] cellInRow:2 inColumn:2];
// Определяем диапазон сгруппированных ячеек
struct NuGridRange gridRange;
gridRange.startCell = startCell;
gridRange.endCell = (NuGridExpandableCell*)endCell;
[proxyDatasource setGridRange:gridRange];
// Сворачиваем строку таблицы
[proxyDatasource gridView:nil collapseRow:[startCell rowNumber]];

В результате выполнения примера был создан экспандер, строки с номерами 1 и 2 были свёрнуты, текст родительской ячейки стал иметь полужирное начертание:

После нажатия на экспандер его значок изменился, а строки с указанными номерами были развёрнуты:

Изменим пример, заменив строку кода

[proxyDatasource gridView:nil collapseRow:[startCell rowNumber]];

на следующую строку:

[proxyDatasource gridView:nil collapseColumn:[startCell columnNumber]];

После выполнения примера будут свёрнуты столбцы таблицы B и C:

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

Выполним выравнивание экспандера по правой границе ячейки таблицы, добавив к примеру следующий код:

[[startCell style] setExpanderImageAlignment:NuImageHorizontalAlignmentRight];

В результате выполнения примера экспандер разместился у правой границы ячейки:

Теперь удалим настройки выравнивания экспандера и уберём возможность полужирного начертания для текста родительской ячейки, добавив к примеру следующие строки:

[headerStyle removeBoldForParent];
[[startCell style] removeExpanderImageAlignment];

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

См. также:

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