taginfo plus nxp leer con apple antena and activar iphone objective-c ipad uiview

plus - nfc iphone xr



Propiedad opaca UIView (2)

La propiedad opaque de una UIView se establece de forma predeterminada en "SÍ". Pero la referencia de clase UIView dice esto:

Se espera que una vista opaca llene sus límites con contenido totalmente opaco, es decir, el contenido debe tener un valor alfa de 1.0. Si la vista es opaca y no llena sus límites o contiene contenido total o parcialmente transparente, los resultados son impredecibles.

Dado que cambiar el alpha de una vista es bastante común, especialmente durante las transiciones o animaciones, entonces la declaración anterior implicaría que siempre debe establecer opaque manualmente en NO si también va a cambiar la propiedad alpha .

Pero nunca he ajustado manualmente el opaque y no he tenido ningún síntoma notable. ¿Qué tan necesario es hacer esta consideración?


La respuesta es que iOS es lo suficientemente inteligente como para reconocer que si el alpha su vista es menor que 1, debe dibujar el contenido detrás de su vista, independientemente de la propiedad opaque de su vista.

En respuesta a los comentarios: de mi limitada experimentación, no creo que la propiedad opaque la vista tenga ningún efecto. (Creo que la documentación es incorrecta.) La propiedad opaque la capa de la vista tiene un efecto: controla si CGContext pasó a drawRect: tiene un canal alfa. Si la propiedad opaque la capa es SÍ, el contexto no tiene canal alfa (y se trata como si cada píxel tuviera alfa de 1.0).

Cambiar la propiedad opaque la vista no tiene efecto en la propiedad opaque la capa. Esto es diferente a (por ejemplo) la propiedad alpha la vista, que es solo una envoltura para la propiedad de opacity la capa.

En teoría, después de haber documentado que la propiedad opaque les permite optimizar el dibujo, Apple podría implementar esa optimización en el futuro. En la práctica, hacerlo probablemente rompería muchas aplicaciones, por lo que probablemente no se aplique ese cambio a las aplicaciones vinculadas a SDK anteriores. (Tienen la capacidad de hacer que UIKit se comporte de manera diferente dependiendo de la versión con la que se vinculó la aplicación).


Siempre que el contenido de la vista en sí (no sus subvistas) no tenga alfa, está bien. Por lo tanto, si inicia una vista de UIImageViews con una imagen PNG con alfa, opaque se configurará en NO automáticamente.

Normalmente no necesitas muchas vistas no opacas. Pero alfa de la vista completa es algo diferente de todos modos.