Работа с контейнером, разделённым на два представления данных (пример 1)

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

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

Описание

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

Исходный код

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

// Получаем контроллер для работы с экспресс-отчётом
MAExpressAnalysisReportViewController *contr = (MAExpressAnalysisReportViewController *)m_controller;
// Получаем контейнер панели измерений
PanelViewController *panelViewCtrl = [contr panelViewController];
// Создаём контроллер для работы с контейнером, разделённым на два представления данных
SplitViewController *splitController = [SplitViewController new];
// Загружаем контейнер
[splitController loadView];
// Отображаем индикатор загрузки для второго представления
[splitController showWaiter];
// Устанавливаем контейнер панели измерений в качестве первого представления данных контейнера
[splitController setPanelViewController: panelViewCtrl];
// Устанавливаем расположение разделителя двух представлений данных контейнера
[[splitController splitView] setSeparatorPosition: (panelViewCtrl.view.frame.size.width * 1.05)];
// Отключаем анимацию при изменении положения разделителя в контейнере
[splitController setNoResizeUntilAnimated: YES];
// Создаём таблицу для отображения в качестве второго представления данных
UITableViewController *table = [UITableViewController new];
// Устанавливаем второе представление данных контейнера
[splitController setSecondView: [table view]];
// Создаём заголовок в контейнере
SplitViewTitleView *title = [[splitController splitView] titleView];
// Устанавливаем цвет нижней границы области заголовка в контейнере
[title setBottomLineColor: [UIColor blackColor]];
// Устанавливаем отступ текста от левой границы области заголовка
[title setLeftPadding: 50];
// Устанавливаем текст заголовка
[[title titleLabel] setText: @"Prognoz"];
// Устанавливаем цвет заливки области заголовка
[title setBackgroundColor: [UIColor colorWithHex:@"d9d9d9"]];
// Устанавливаем высоту заголовка в контейнере
[[splitController splitView] setTitleHeight: 70.0];
// Обновляем заголовок в контейнере
[title updateTitleViewFrame];
// Отображаем заголовок
[[splitController splitView] setHasTitle: YES];
// Отображаем контейнер с разделителем
[self showViewControllerInNavigationController: splitController];
// Скрываем индикатор загрузки второго представления данных
[splitController hideWaiter];
// Обновляем контейнер с разделителем
[[splitController splitView] update];

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

Первое представление смещено вправо на 5% от его размера. В верхней части второго представления отображён заголовок в контейнере с текстом «Prognoz» и с отступом слева, равным 50 пикселям. Заголовок отделяется от второго представления горизонтальной линией чёрного цвета.

Результат выполнения примера останется тем же, если строку кода:

[splitController setSecondView: [table view]];

заменить на следующую строку:

[splitController setContentViewController: table];

Обе строки предназначены для установки второго представления контейнера.

Теперь удалим первое представление контейнера, добавив к примеру следующую строку кода:

[splitController setNoFirstViewMode: [splitController firstViewVisible]];

После выполнения примера контейнер с панелью измерений был удалён:

См. также:

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