2010-11-18 2 views
6

Я пытаюсь запустить код, когда пользователь нажимает (или затрагивает) plotSymbol на моем графике, созданном с помощью Core Plot.Прикосновение к сюжету Символ в CorePlot

Это не работает с диаграммы рассеяния:

-(void)scatterPlot:(CPScatterPlot *)plot plotSymbolWasSelectedAtRecordIndex: (NSUInteger)index 
{ 
    NSLog(@"plotSymbolWasSelectedAtRecordIndex %d", index); 
} 

Но это хорошо работает, когда я использую barPlot:

-(void)barPlot:(CPBarPlot *)plot barWasSelectedAtRecordIndex:(NSUInteger)index 
{ 
    NSLog(@"barWasSelectedAtRecordIndex %d", index); 
} 

Чего не хватает моей попытки захватить, когда пользователь нажимает или штрихи на мой диаграммы рассеяния?

+0

hi am также пытаюсь интегрировать эту funtionality в мой код, но когда я добавляю этот метод, его даже не вызывают, когда мы нажимаем на barplot .please объясните мне ясно, о возможности внедрения этого метода.thx заранее ... – ravoorinandan

ответ

14

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

+0

Большое спасибо! Также стоит отметить, что вы можете установить plotSymbolMarginForHitDetection на вашу ширину/количество символов, чтобы было легче выбирать символы, когда их немного, и все же можно выбрать определенный символ, когда их много. –

+0

Человек, которому я обожаю только то, как все обстоит с нами в этих рамках. Хорошо спроектирован. –

9

Кроме того, не забудьте указать делегат CPScatterPlot, чтобы указать на ваш объект, или он не будет вызван.

1

Если вы создаете свой материал во время init в подклассе CPTGraphHostingView (скажем, в initWithCoder, исходящем из xib), ваше свойство hostingGraph может быть забито Core Plot (по крайней мере, с 1,3), и поэтому крановая регулировка крана.

https://code.google.com/p/core-plot/issues/detail?id=555

Разумеется, это случилось со мной :-) Мой обходной путь, чтобы установить hostedGraph в моем numberOfRecordsForPlot, если это уже не установлено.

Смежные вопросы