2010-11-18 23 views
6

Sto cercando di eseguire del codice quando l'utente fa clic (o tocca) un graficoSymbol sul grafico mye creato con Core Plot.Toccando un grafico Simbolo in CorePlot

Questo non funziona con grafico a dispersione:

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

Ma questo funziona bene quando uso il barPlot:

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

Ciò che manca dal mio tentativo di catturare quando l'utente fa clic o tocchi sul mio grafico a dispersione?

+0

hi sto anche cercando di integrare questa funzionalità nel mio codice, ma quando aggiungo questo metodo non viene nemmeno chiamato quando si tocca il barplot. Per favore spiegami chiaramente, per l'implosione di questo metodo.thx in anticipo ... – ravoorinandan

risposta

14

È necessario impostare plotSymbolMarginForHitDetection sul grafico a dispersione. Dovresti impostarlo in modo che corrisponda alla dimensione dei simboli della trama o leggermente più grande se hai bisogno di un bersaglio più grande per fare clic.

+0

Molte grazie! Si noti inoltre che è possibile impostare la tramaSymbolMarginForHitDetection sulla larghezza/numero di simboli della trama in modo che sia più facile selezionare i simboli quando ce ne sono pochi, ma è ancora possibile selezionare un determinato simbolo quando ce ne sono molti. –

+0

Uomo Mi piace come tutto ci viene esposto in questo contesto. Ben progettato. –

9

Inoltre, non dimenticare di impostare il delegato di CPScatterPlot in modo che punti al tuo oggetto, altrimenti non verrà chiamato.

1

Se si imposta il materiale al momento di inizializzazione in una sottoclasse di CPTGraphHostingView (ad esempio in initWithCoder proveniente da un xib), la proprietà hostedGraph potrebbe essere coperta da Core Plot (almeno fino alla versione 1.3), quindi la maneggevolezza si interrompe.

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

Inutile dire che questo è accaduto a me :-) La mia soluzione è quella di impostare il hostedGraph nel mio numberOfRecordsForPlot, se non è impostato già.

Problemi correlati