2010-11-18 13 views
6

Estoy tratando de ejecutar algún código cuando el usuario hace clic (o toca) un plotSymbol en el gráfico de mye creado con Core Plot.Tocar un plotSymbol en CorePlot

Esto no funciona con el diagrama de dispersión:

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

Pero esto funciona bien cuando se utiliza la barplot:

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

¿Qué falta en mi intento de capturar cuando el usuario hace clic o toque en mi ¿gráfico de dispersión?

+0

Hola, también estoy tratando de integrar esta funcionalidad en mi código, pero cuando agrego este método, ni siquiera se llama cuando tocamos en la barra de direcciones. Por favor, explícame claramente, acerca de la implementación de este método.thx de antemano ... – ravoorinandan

Respuesta

14

Debe configurar el plotSymbolMarginForHitDetection en su diagrama de dispersión. Debe configurarlo para que coincida con el tamaño de los símbolos de su trazado o un poco más grande si necesita un objetivo más grande para hacer clic.

+0

¡Muchas gracias! También vale la pena señalar que puede establecer plotSymbolMarginForHitDetection en el ancho/número de símbolos de su trazado para que sea más fácil seleccionar símbolos cuando hay pocos y aún así poder seleccionar un cierto símbolo cuando hay muchos de ellos. –

+0

Hombre Me encanta cómo todo está expuesto a nosotros en este marco. Bien diseñado. –

9

Además, no olvide configurar el delegado CPScatterPlot para que apunte a su objeto, o no se llamará.

1

Si está configurando sus cosas en el momento de inicio en una subclase de CPTGraphHostingView (digamos en initWithCoder que proviene de un xib), su propiedad alojadaGraph podría ser golpeada por Core Plot (al menos a partir de 1.3), y entonces el manejo del grifo causará un cortocircuito.

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

Huelga decir que esto sucedió a mí :-) Mi solución consiste en establecer la hostedGraph en mi numberOfRecordsForPlot si no se establece ya.

Cuestiones relacionadas