2012-06-27 11 views
8

Tengo un gráfico con ejes Y y X dibujados en el espacio de trazado predeterminado junto con el trazado primario, y luego tengo espacios de trazado separados para gráficos auxiliares cada uno con sus propios ejes Y (el eje X es el mismo para todos parcelas).Diagrama de núcleo: cómo ocultar la trama, el eje y las etiquetas?

Estoy implementando botones para activar y desactivar las tramas auxiliares y me gustaría que esto incluya básicamente todo el espacio de la trama (trazado, eje y personalizado y etiquetas del eje y personalizado). No parece haber ninguna propiedad 'oculta' para el espacio de la trama, y ​​todo el diagrama y el eje tienen propiedades 'ocultas', estableciendo estas 'SÍ' deja visibles las etiquetas de los ejes.

  • ¿Cuál es la mejor manera de ocultar completamente el contenido de un espacio de trazado sin causar más redibujado de lo necesario?

Supongo que una de las formas podría ser eliminar por completo el espacio de trazado y el trazado del gráfico, pero esto no es intuitivo.

+0

intente configurar 'graph.axisSet = nil;' –

+0

que eliminaría todas las axises en el gráfico, me gustaría solamente para ocultar los ejes/ejes asociados con las parcelas auxiliares. Supongo que una solución es mantener referencias a todos los ejes y reconfigurar el axisSet del gráfico como sugieres (omitiendo los ejes que deberían estar ocultos), pero se siente como un hack :) – Setomidor

+0

Sí, seguro que es un trabajo- alrededor de :) –

Respuesta

6

también puede configurar todas las etiquetas ocultas

CPTAxis *axis = someAxis; 
hidden = YES; 

axis.hidden = hidden; 
for (CPTAxisLabel *axisLabel in axis.axisLabels) { 
    axisLabel.contentLayer.hidden = hidden; 
} 
6

Conjunto hidden a YES en el eje que desea ocultar. Si usa etiquetas personalizadas (política de etiquetado CPTAxisLabelingPolicyNone), simplemente configure axisLabels en nil. Establezca nuevas etiquetas cuando desee que vuelvan a aparecer. Para las otras políticas de etiquetado, configure labelFormatter en nil para ocultar las etiquetas y asignar un formateador válido cuando lo desee.

6

Puede configurar todos los ejes como ocultos en el nivel axisSet, y también se puede ocultar las etiquetas mediante la asignación de una política de etiquetado de CPTAxisLabelingPolicyNone a los ejes. Esta solución ha funcionado bien para mí:

CPTXYAxisSet *axisSet = (CPTXYAxisSet *) self.graphHostingView.hostedGraph.axisSet; 
axisSet.hidden = YES; 

CPTAxis *y = axisSet.yAxis; 
y.labelingPolicy = CPTAxisLabelingPolicyNone; 

CPTXYAxis *x = axisSet.xAxis; 
x.labelingPolicy = CPTAxisLabelingPolicyNone; 
+0

Es mejor agregar alguna explicación con el código que proporcione para una respuesta. –

+0

Gracias Ollie; Agregué una pequeña explicación. – Dan

Cuestiones relacionadas