Si mi supervista es una caja que mide 10 unidades en cada lado, y mi subvista tiene 20 unidades de ancho, con el clipsToBoundsajuste a YES, solo veré la parte de la subvista que se ajuste a los límites de la supervista. De lo contrario, si clipsToBoundsestá configurado en NO, veré la subvista completa, incluso las partes fuera de la supervista (suponiendo que todavía estemos en la pantalla).
Como ejemplo visual, considere las siguientes vistas configuradas en el guión gráfico:

Esta es una UIViewetiqueta blanca en la esquina superior izquierda con un simple "1" o "2" para que pueda discutirlos como view1o 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 viewDidLoadmétodo del controlador de vista , tenemos el siguiente código:
C objetivo:
- (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 lo miramos en el simulador o en el dispositivo, obtenemos los siguientes resultados:

Entonces, a pesar de que estas vistas se configuran de manera idéntica (excepto clipsToBounds), se ven diferentes. Esto es lo que clipsToBoundshace. Establecerlo en YESproporcionará el resultado superior, mientras que establecerlo en NOproporcionará el resultado inferior.
Si depuramos la jerarquía de la vista, podemos ver más claramente que las dos cajas negras se extienden más allá de los límites de la vista blanca, pero solo la vista 2 muestra esto cuando la aplicación se está ejecutando:

UITextViewsombras no son visibles, si laclipsToBoundspropiedad es igual atrue; ? Si es asífalse, funciona bien