Tengo UIScrollView y el número de objetos (composiciones de UIView) con UIImageViews dentro de ellos. Algunos de UIImageViews tienen borde redondo (uso myImageView.layer.masksToBounds = YES;
para esto). Otros tienen bordes rectangulares y parte de la imagen en ellos (uso la propiedad Clip subviews
en Interface Builder para esto).clipToBounds and masksToBounds problema de rendimiento
La cuestión es que me encontré con que las propiedades del clip afectan en gran medida el rendimiento mientras se desplaza:
Para obtener resultados de perfiles iPod touch (cuarta generación):
- con las propiedades del clip habilitados (ambos o uno de a) tengo alrededor de 30 fps mientras se desplaza
- con las propiedades del clip con discapacidad que tengo los 60 fps mientras se desplaza
realmente es necesario recortar algunas imágenes para redondear los límites y otras para delimitar el rectángulo (para mostrar parte de la imagen). Entonces, aquí está mi pregunta: ¿De qué maneras hay para mejorar el rendimiento? Puede haber formas de bajo nivel para hacerlo (drawRect:
o algo así), o puede ser que sea útil para jugar con el enmascaramiento alfa o simplemente hago algo mal?
buenos consejos! pero ahora realmente ayuda cuando aplico esta propiedad a la vista completa (con vista de imagen redondeada y etiqueta de texto dentro). En este caso, el texto se vuelve tan feo ... Si lo aplico solo en la vista de imagen redondeada, casi no tiene efecto. – Lloyd18
Ah, lo siento. Para soporte de retina, configure 'view.layer.rasterizationScale = [[UIScreen mainScreen] scale]'. Eso debería hacer que todo sea nítido. He actualizado mi respuesta. –
Y recuerde verificar el uso de su memoria. Utilice el instrumento "Monitor de actividad" para ver la diferencia de uso de la memoria cuando utiliza rasterización. La memoria de video extra probablemente no aparecerá en las asignaciones. Si el aumento es demasiado grande, debería probar y reciclar las vistas como dije, para que no haya demasiadas instancias en un momento dado. –