Изменение параметров легенды и границ диаграммы

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

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

Описание

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

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

Исходный код

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

// Функция для выполнения примера
-(void) executeExample{
    // Устанавливаем цвет границ диаграммы
    [[chart border] setBorderColor:[UIColor blackColor]];
    // Устанавливаем ширину границ диаграммы
    [[chart border] setBorderThickness:2];
    // Устанавливаем радиус скругления границ диаграммы
    [[chart border] setBorderRadius:10];
    // Задаем угол поворота содержимого легенды
    [[chart legend]setContentRotation:LegendContentRotation180deg];
    // Устанавливаем максимальное значение высоты легенды
    [[chart legend] setMaxHeight:70];
    // Устанавливаем значение ширины легенды
    [[chart legend] setLegendWidth:120];
    // Устанавливаем максимальное количество столбцов
    [[chart legend] setMaximumColumnCount:2];
    // Упорядочиваем по максимальному количеству столбцов
    [[chart legend] setOrderByColumn:YES];
    // Устанавливаем дополнительное содержимое над индикаторами легенды
    [[chart legend] setMoreContentAboveIndicator:[UIImage imageNamed:@"circle.png"]];
    // Устанавливаем дополнительное содержимое под индикаторами легенды
    [[chart legend] setMoreContentBelowIndicator:[UIImage imageNamed:@"circle.png"]];
    // Рассчитываем и выводим размер легенды в соответствии с заданной областью
    CGSize contentSize =[[chart legend] contentSizeForRect:CGRectMake(0, 0, 200, 200)];
    NSLog(@"%@ (%f, %f)", @"Рассчитанный размер области содержимого легенды:",
          contentSize.width, contentSize.height);
};
// Обрабатываем событие начала касания к диаграмме
- (void)chartTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event sender:(id)sender{
    // Очищаем содержимое легенды
    [[chart legend] clearLegend];
}
// Обрабатываем событие касания области диаграммы
- (void)chartTouchesTapInView:(UIView *)v withPoint:(CGPoint)point
{
    // Установим содержимое легенды, основываясь на данных диаграммы
    [[chart legend] fillLegend];
    // Выводим размер области содержимого легенды
    CGSize lSize = [[chart legend] contentSize];
    NSLog(@"%@ (%f, %f)", @"Размер области содержимого легенды:", lSize.width, lSize.height);
    // Определяем объект, содержащий параметры легенды
    NSMutableDictionary *newValuesDict = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                          [UIFont fontWithName:@"Arial" size: 20], @"m_font",
                                          [UIColor blueColor], @"m_textColor",
                                          nil];
    // Определяем объект, содержащий параметры легенды по умолчанию
    NSMutableDictionary *defaultValuesDict = [NSMutableDictionary dictionaryWithObjectsAndKeys:
                                              [UIFont fontWithName:@"Arial" size: 14], @"m_font",
                                              [UIColor blackColor], @"m_textColor",
                                              nil];
    // Устанавливаем параметры легенды
    [[chart legend] configureLegendWithDict:newValuesDict andDefaults:defaultValuesDict];
}

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

При начале нажатия на область диаграммы содержимое легенды будет очищено:

При окончании нажатия содержимое легенды будет восстановлено.

В консоль среды разработки выводится рассчитанный и фактический размер области легенды:

Рассчитанный размер области содержимого легенды: (120.000000, 74.000000)

Размер области содержимого легенды: (120.000000, 74.000000)

Также при прокрутке легенды будет отображено дополнительное содержимое над и под индикаторами:

См. также:

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