Pregunta

Estoy tratando de acelerar mi interfaz gráfica de usuario que se carga muy lento lento cuando Estoy cargando un gran proyecto (la interfaz gráfica de usuario es una representación de los grupos y subgrupos y se compone de muchos puntos de vista). Durante este proceso yo estaba buscando en el tiempo que ciertos segmentos de código llevan a ejecutar y he encontrado que una llamada a addSubview está tomando entre 10 y 20 milisegundos la mayoría de las veces. La subvista que estaba viendo es un botón de la divulgación. Me pregunto si este método es inherentemente lento o es su algún otro factor en el trabajo aquí? Es el tiempo que toma para agregar la subvista depende de la complejidad de la subvista o es que no es un factor? Además, ¿hay algún otro método que se puede utilizar para agregar una vista secundaria que podría ser más rápido?

¿Fue útil?

Solución

Usted podría intentar -setSubviews: que tiene una serie de subvistas. Esto puede ser más rápido que llamar -addSubview:. Varias veces a sí mismo

Si no, -addSubview: y -addSubview: posicionado: relativeTo:. Son los únicos otros métodos para insertar subvistas

Soy curioso, sin embargo, ¿por qué es de 10 - 20 ms para desacelerar para una sola vista secundaria? ¿Cuántas subvistas está tratando de agregar?

Es posible que hay un diseño alternativo usando NSCell de que puede ser más rápido, pero sin conocer más detalles acerca de lo que está tratando de lograr, es difícil saber.

Otros consejos

Reorganización de la jerarquía de la vista no es algo que normalmente haría muy a menudo. En lugar de agregar y quitar subvistas, podría ocultar y mostrar ellos.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top