¿Cómo funcionan clipsToBounds?

Me gustaría saber cómo usar los UIView propiedad clipsToBounds .

La documentation oficial dice lo siguiente:

propiedad clipsToBounds

Un valor boolean que determina si las subvistas se limitan a los límites de la vista.

Discusión
Establecer este valor en YES hace que las subvistas se recorten a los límites del receptor. Si se establece en NO , las sub venciones cuyos frameworks se extienden más allá de los límites visibles del receptor no se recortan. El valor pnetworkingeterminado es NO .

Pero no estoy claro qué significa esto exactamente. ¿Cómo debería estar usando clipsToBounds ? ¿Cuáles son las consecuencias de establecer esta propiedad en YES exactamente? ¿O a NO ?

Si mi supervista es una caja que mide 10 unidades a cada lado y mi subvista es de 20 unidades de ancho, con clipsToBounds ajustados en YES , solo veré la parte de la subvista que se ajuste a los límites de la supervisión. De lo contrario, si clipsToBounds está configurado en NO , veré la subvista completa, incluso las partes fuera de la supervisión (suponiendo que todavía estamos en la pantalla).

Como ejemplo visual, considere las siguientes vistas configuradas en el guión gráfico:

introduzca la descripción de la imagen aquí

Esta es una UIView blanca, una label en la esquina superior izquierda con un simple "1" o "2" para que pueda discutir esto como view1 o view2 . Además, la vista en negro tiene el mismo tamaño que la vista en blanco, pero su origen está en el centro de la vista en blanco.

En el método viewDidLoad del controller, tenemos el siguiente código:

C objective:

 - (void)viewDidLoad { [super viewDidLoad]; self.view1.clipsToBounds = YES; self.view2.clipsToBounds = NO; } 

Rápido:

 override func viewDidLoad() { super.viewDidLoad() self.view1.clipsToBounds = true self.view2.clipsToBounds = false } 

Cuando ejecutamos el código y miramos en el simulador o en el dispositivo, obtenemos los siguientes resultados:

introduzca la descripción de la imagen aquí

Entonces, a pesar de que estas vistas se configuran de forma idéntica (excepto clipsToBounds ), se ven diferentes. Esto es lo que hace clipsToBounds . Configurarlo en YES proporcionará el resultado superior, mientras que configurarlo para NO proporciona el resultado inferior.

Si depuramos la jerarquía de vista, podemos ver con mayor claridad que los cuadros negros se extienden más allá de los bordes de la vista en blanco, pero solo la vista 2 muestra esto cuando la aplicación se está ejecutando:

introduzca la descripción de la imagen aquí

    Intereting Posts