Si mon superview est une boîte mesurant 10 unités de chaque côté et que ma sous-vue a une largeur de 20 unités, avec clipsToBoundsdéfini sur YES, je ne verrai que la partie de la sous-vue qui s'inscrit dans les limites de la supervision. Sinon, si clipsToBoundsest défini sur NO, je verrai la sous-vue entière, même les parties en dehors de la supervision (en supposant que nous soyons toujours à l'écran).
À titre d'exemple visuel, considérez les vues suivantes configurées sur le storyboard:

Ceci est un blanc UIView, une étiquette dans le coin supérieur gauche avec un simple "1" ou "2" afin que je puisse en discuter comme view1ou view2. De plus, la vue noire est de la même taille que la vue blanche, mais son origine se trouve au centre de la vue blanche.
Dans la viewDidLoadméthode du contrôleur de vue , nous avons le code suivant:
Objectif c:
- (void)viewDidLoad {
[super viewDidLoad];
self.view1.clipsToBounds = YES;
self.view2.clipsToBounds = NO;
}
Rapide:
override func viewDidLoad() {
super.viewDidLoad()
self.view1.clipsToBounds = true
self.view2.clipsToBounds = false
}
Lorsque nous exécutons le code et regardons dans le simulateur ou sur l'appareil, nous obtenons les résultats suivants:

Ainsi, bien que ces vues soient configurées de manière identique (sauf clipsToBounds), elles semblent différentes. C'est ce que clipsToBoundsfait. Le YESdéfinir sur NOfournira le résultat le plus élevé, tandis que le paramètre sur fournira le résultat du bas.
Si nous débogage la hiérarchie des vues, nous pouvons voir plus clairement que les boîtes noires s'étendent toutes les deux au-delà des frontières de la vue blanche, mais seule la vue 2 le montre lorsque l'application est en cours d'exécution:

UITextViewombres ne sont pas visibles, si laclipsToBoundspropriété est égale àtrue; ? Si c'estfalse, fonctionne très bien