Базовый график, требуется много времени для отображения метки в верхней части каждого столбца столбца - PullRequest
2 голосов
/ 18 января 2012

Я хотел бы отобразить метку в верхней части каждого столбца с методом делегата:

-(CPTLayer *)dataLabelForPlot:(CPTPlot *)plot 
                  recordIndex:(NSUInteger)index {

    CPTMutableTextStyle *textStyle = [CPTTextStyle textStyle];
    textStyle.color = [CPTColor whiteColor]; 
    textStyle.fontSize = 12.0f;
    CPTTextLayer *textLayer = [[[CPTTextLayer alloc] initWithText:@"x" style:textStyle]
                           autorelease];
    return textLayer;
}

Если проблема возникла в моем проекте, я напрямую вставляю этот фрагмент кода в файл CPTTestAppBarChartController.m в проекте CPTTestApp-iPhone, загруженном с здесь .
Но для отображения меток все равно требуется около 2 минут. Как я могу заставить его отображаться быстрее?
Спасибо.

1 Ответ

0 голосов
/ 19 января 2012

Сколько данных вы планируете? Если это много (100 баллов), вы можете создать метки только для видимых точек. Перезагрузите данные, используя метод -reloadDataInIndexRange: для загрузки новых меток, когда новые данные перемещаются в видимый диапазон.

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

P.S. Обязательно используйте [CPTMutableTextStyle textStyle] вместо [CPTTextStyle textStyle] для создания стиля текста.

...