Se meu superview for uma caixa medindo 10 unidades de cada lado, e meu subview tiver 20 unidades de largura, com clipsToBoundsdefinido como YES, verei apenas a parte do subview que se encaixa dentro dos limites do superview. Caso contrário, se clipsToBoundsestiver definido como NO, verei a subvisualização inteira, até mesmo as partes fora da visão geral (assumindo que ainda estejamos na tela).
Como um exemplo visual, considere as seguintes visualizações configuradas no storyboard:

Este é um UIViewrótulo branco no canto superior esquerdo com um simples "1" ou "2" para que eu possa discutir como view1ou view2. Além disso, a visualização em preto tem o mesmo tamanho que a visualização em branco, mas sua origem está no centro da visualização em branco.
No viewDidLoadmétodo do view controller , temos o seguinte código:
Objective-C:
- (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
}
Quando executamos o código e olhamos no simulador ou no dispositivo, obtemos os seguintes resultados:

Portanto, apesar dessas visualizações serem configuradas de forma idêntica (exceto clipsToBounds), elas parecem diferentes. Isso é o que clipsToBoundsfaz. Definir como YESfornecerá o resultado superior, enquanto defini-lo como NOfornecerá o resultado inferior.
Se depurarmos a hierarquia de visualização, poderemos ver mais claramente que as caixas pretas realmente se estendem além das bordas da visualização em branco, mas apenas a visualização 2 mostra isso quando o aplicativo está realmente em execução:

UITextViewsombras não são visíveis, se aclipsToBoundspropriedade for igual atrue; ? Se forfalse, funciona bem