Wenn meine Übersicht eine Box ist, die 10 Einheiten auf jeder Seite misst, und meine Unteransicht 20 Einheiten breit ist und auf clipsToBounds
gesetzt ist YES
, wird nur der Teil der Unteransicht angezeigt, der in die Grenzen der Übersicht passt. Andernfalls wird if auf clipsToBounds
gesetztNO
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 view1
oder 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 clipsToBounds
macht es. Wenn Sie es auf YES
einstellen, wird das obere Ergebnis angezeigt, während Sie es auf NO
das 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:
UITextView
Schatten nicht sichtbar sind, wenn dieclipsToBounds
Eigenschaft gleich der isttrue
; ? Wennfalse