Требования к операционной системе: iOS 5.0 и выше.
Мобильное устройство: iPad.
В данном примере реализовано создание и отображение линий уровня на диаграмме. В консоль среды разработки выводится следующая информация о первой линии уровня:
признак принадлежности указанной точки к линии уровня;
позиция линии уровня на диаграмме;
абсолютная позиция линии уровня;
тип линии.
При нажатии на область диаграммы происходит удаление первой линии уровня и изменение цвета второй линии, при повторном нажатии все линии удаляются.
Для выполнения примера необходимо разместить взамен метода executeExample класса ViewController (см. раздел «Создание линейной диаграммы») следующий код:
// Функция для выполнения примера
-(void) executeExample{
// Устанавливаем максимальное количество столбцов легенды
[[chart legend] setMaximumColumnCount:2];
// Устанавливаем использование упорядочивания по максимальному количеству столбцов
[[chart legend] setOrderByColumn:YES];
// Определяем линию уровня
LevelLineHolder *line1 = [[LevelLineHolder new] autorelease];
[line1 setIsHorisontal:YES]; // Положение линии
[line1 setColor:[UIColor orangeColor]]; // Цвет линии
[line1 setThickness:8]; // Толщина линии
[line1 setValue:9]; // Значение линии уровня
[line1 setVisible:YES]; // Признак видимости линии
[line1 setName:@"Линия1"]; // Имя линии
[line1 setLabelVisible:YES]; // Признак видимости метки линии
[line1 setChartView:chart]; // Диаграмма, которой принадлежит линия
// Сохраняем параметры линии
NSDictionary *line1Dict = [line1 saveState];
// Определяем линию уровня
LevelLineHolder *line2 = [[LevelLineHolder new] autorelease];
// Инициализируем линию уровня указанными параметрами
[line2 initWithDict:line1Dict];
[line2 setName: @"Линия2"];
[line2 setValue:5];
[line2 setColor:[UIColor blueColor]];
[line2 setChartView:chart];
[line2 setIsHorisontal:NO];
// Добавляем созданные линии на диаграмму
[chart addLevelLine:line1];
[chart addLevelLine:line2];
};
// Обрабатываем событие касания области диаграммы
- (void)chartTouchesTapInView:(UIView *)v withPoint:(CGPoint)point
{
// Выполняем следующий код, если количество линий уровня на диаграмме равно двум
if([chart levelLines].count == 2)
{
// Получаем первую линию уровня диаграммы
LevelLineHolder *line1 = [chart levelLines][0];
// Определяем точку с заданными координатами
CGPoint p = CGPointMake(248, 158);
// Выводим признак принадлежности указанной точки линии уровня
NSLog(@"%@ (%f, %f) линии уровня: %hhd", @"Признак принадлежности точки с координатами ",
p.x, p.y, [line1 findLevelLineHit:p]);
// Выводим позицию линии уровня
NSLog(@"%@ %f", @"Позиция линии уровня на графике:", line1.position);
// Выводим позицию линии уровня
NSLog(@"%@ %f", @"Абсолютная позиция линии уровня:", line1.x);
// Выводим тип линии
switch ([line1 isHorisontal]) {
case YES:
NSLog(@"Тип линии: горизонтальный");
break;
case NO:
NSLog(@"Тип линии: вертикальный");
default:
break;
}
// Получаем вторую линию уровня диаграммы
LevelLineHolder *line2 = [chart levelLines][1];
// Сохраняем параметры линии
NSDictionary *line2Dict = [line2 saveState];
// Изменим значение параметра цвета
[line2Dict setValue:[UIColor purpleColor] forKey:@"color"];
// Загружаем параметры линии
[line2 loadState:line2Dict];
// Если диаграмма содержит указанную линию, то удаляем ее
if([chart hasLevelLine:line1])
{
[chart deleteLevelLine:line1];
}
// Перерисовываем диаграмму
[chart redrawChart];
}
else
{
// Удаляем все линии уровня диаграммы
[chart deleteAllLevelLines];
// Перерисовываем диаграмму
[chart redrawChart];
}
}
В результате выполнения примера были созданы и отображены две линии уровня диаграммы:

Нажмем на область диаграммы.
В результате в консоль среды разработки была выведена информация о первой линии уровня:
Признак принадлежности точки с координатами (248.000000, 158.000000) линии уровня: 1
Позиция линии уровня на графике: 154.000000
Абсолютная позиция линии уровня: 243.775000
Тип линии: горизонтальный
После чего данная линия уровня была удалена, а у второй линии уровня был изменен цвет:

После ещё одного нажатия на область диаграммы будут удалены все линии уровней.
См. также: