Работа с контроллером настройки ряда данных

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

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

Описание

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

Исходный код

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

// Получаем массив контроллеров представлений данных
NSArray *controllers =[m_controller dataViewControllers];
// Выбираем диаграмму в качестве текущего представления
[m_controller setDataViewControllerWithIndex: 1];
// Перебираем в цикле контроллеры представлений данных
for(NSObject *controller in controllers)
{
    // Проверяем, является ли текущий контроллер контроллером представления данных в виде диаграммы
    if([controller isMemberOfClass:[MAChartDataViewController class]])
    {
        // Получаем объект контроллера представления данных в виде диаграммы
        MAChartDataViewController *chartController = (MAChartDataViewController *)controller;
        // Получаем представление контроллера
        UIView *view = [chartController view];
        // Проверяем, является ли текущее представление представлением данных в виде диаграммы
        if([view isMemberOfClass:[Chart class]])
        {
            // Получаем источник данных диаграммы
            ChartDataViewDatasource *datasource = [[chartController dataSource] datasource];
            // Получаем ключ, соответствующий ряду данных с индексом 1
            NSString *key = [NSString stringWithFormat:@"%@", [[datasource seriesKeys] objectAtIndex: 1] ];
            // Получаем представление данных в виде диаграммы
            Chart *chart = (Chart *)view;
            // Создаем линию тренда
            TrendLine *line = [[TrendLine alloc] init];
            // Добавляем линию тренда в представление данных в виде диаграммы
            [chart addTrendLine:line];
            // Задаем источник данных линии тренда
            line.dataSource = [chartController dataSource];
            // Устанавливаем ключ ряда данных, на основе которого строится линия тренда
            [line setDataIndex:key];
            // Задаем цвет линии тренда
            line.color = [UIColor blueColor];
            // Задаем толщину линии тренда
            line.thickness = 2;
            // Устанавливаем признак того, будет ли название линии тренда сформировано автоматически
            line.autoName = YES;
            // Обновляем данные линии тренда
            [line updateData];
            // Создаем контроллер настройки ряда данных с индексом 1 с помощью контроллера представления данных в виде диаграммы
            ChartRowViewController *row = [[ChartRowViewController alloc] initWithDelegate:chartController index:1];
            // Устанавливаем для контроллера настройки ряда данных значение линии тренда
            [row setTrendLine:line];
            // Устанавливаем представление, в котором будет отображена линия тренда
            [[row trendLine] setChartView:chart];
            break;
        }
    }
}

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

Далее необходимо в теле метода executeExample разместить перед строками:

// Устанавливаем представление, в котором будет отображена линия тренда
[[row trendLine] setChartView:chart];

следующий код:

// Устанавливаем новое значение цвета линии тренда
[[row trendLine] setColor: [UIColor redColor]];

В результате выполнения обновленного примера цвет линии тренда для указанного ряда данных диаграммы будет изменен:

См. также:

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