Wenn meine Übersicht eine Box ist, die 10 Einheiten auf jeder Seite misst, und meine Unteransicht 20 Einheiten breit ist und auf clipsToBoundsgesetzt ist YES, wird nur der Teil der Unteransicht angezeigt, der in die Grenzen der Übersicht passt. Andernfalls wird if auf clipsToBoundsgesetztNO die gesamte Unteransicht angezeigt, auch die Teile außerhalb der Übersicht (vorausgesetzt, wir sind noch auf dem Bildschirm).
Betrachten Sie als visuelles Beispiel die folgenden Ansichten, die im Storyboard eingerichtet wurden:

Dies ist ein Weiß UIView, ein Etikett in der oberen linken Ecke mit einer einfachen "1" oder "2", damit ich diese als view1oder diskutieren kannview2 . Darüber hinaus hat die schwarze Ansicht dieselbe Größe wie die weiße Ansicht, ihr Ursprung liegt jedoch in der Mitte der weißen Ansicht.
In den View Controllern viewDidLoad Methode haben wir den folgenden Code:
Ziel c:
- (void)viewDidLoad {
[super viewDidLoad];
self.view1.clipsToBounds = YES;
self.view2.clipsToBounds = NO;
}
Schnell:
override func viewDidLoad() {
super.viewDidLoad()
self.view1.clipsToBounds = true
self.view2.clipsToBounds = false
}
Wenn wir den Code ausführen und im Simulator oder auf dem Gerät betrachten, erhalten wir die folgenden Ergebnisse:

Obwohl diese Ansichten identisch eingerichtet sind (außer clipsToBounds), sehen sie anders aus. Das clipsToBoundsmacht es. Wenn Sie es auf YESeinstellen, wird das obere Ergebnis angezeigt, während Sie es auf NOdas untere Ergebnis einstellen .
Wenn wir die Ansichtshierarchie debuggen, können wir deutlicher erkennen, dass die beiden schwarzen Kästchen tatsächlich über die Grenzen der weißen Ansicht hinausragen, aber nur Ansicht 2 zeigt dies, wenn die App tatsächlich ausgeführt wird:

UITextViewSchatten nicht sichtbar sind, wenn dieclipsToBoundsEigenschaft gleich der isttrue; ? Wennfalse