que framework apple iphone uikit uiview

iphone - framework - Propiedad UIView clipsToBounds: ¿Mejora el rendimiento?



uikit framework ios (3)

Creo que es lo contrario: activar el recorte daña el rendimiento porque tiene que configurar una máscara de recorte. Recuerdo vagamente haber leído esto en algún lugar, pero no lo encuentro ahora.

La documentación dice que la propiedad clipsToBounds de UIView recortará el dibujo a los límites, o más precisamente que el subView no puede dibujar fuera de los límites del superView .

Suena bien, pero ¿qué significa eso en la práctica?

Si lo configuro en , mi subView solo dibujará automáticamente aquellas partes que no están fuera de los límites de la superView . ¿Aumenta el rendimiento general o aún tengo que asegurarme de que no creo ninguna vista que no sea visible, es decir, dentro de un UIScrollView ?


El (posible) impacto de rendimiento es solo determinístico si conoce la jerarquía de vistas. Como se mencionó anteriormente, generalmente el renderizador usará ciclos de GPU para dibujar la vista A MENOS QUE alguna vista dentro de la jerarquía use drawRect: Esto no afecta a la aplicación OpenGL ES porque drawRect: se omite en este tipo de aplicaciones.

A mi entender, determinar y mostrar el área recortada puede requerir menos ciclos que el cálculo / dibujo / fusión de toda la vista. A partir de OpenGL ES 2.0, el recorte se puede calcular en GPU.


El caso de uso de clipsToBounds es más para subvistas que están parcialmente fuera de la vista principal. Por ejemplo, tengo una subvista (circular) en el borde de su UIView principal (rectangular). Si establece clipsToBounds en YES, solo se mostrará la mitad del círculo / subvista. Si se establece en NO, se mostrará todo el círculo. Acabo de encontrar esto así que quería compartir.