Gözetimim her iki tarafta 10 birim ölçen bir kutuysa ve alt görünümüm 20 birim genişliğindeyse, olarak clipsToBounds
ayarlandığında YES
, alt görüntünün yalnızca denetimin sınırları dahiline uyan kısmını göreceğim. Aksi takdirde, clipsToBounds
olarak ayarlanırsa NO
, tüm alt görünümü, hatta süpervizörün dışındaki kısımları bile göreceğim (hala ekranda olduğumuzu varsayarsak).
Görsel bir örnek olarak, film şeridinde belirlenen aşağıdaki görünümleri düşünün:
Bu bir beyaz UIView
, sol üst köşede basit bir "1" veya "2" yazan bir etiket, böylece bunları view1
veya olarak tartışabilirim view2
. Ek olarak, siyah görünüm beyaz görünümle aynı boyuttadır, ancak başlangıç noktası beyaz görünümün merkezindedir.
View controller'ın viewDidLoad
metodunda aşağıdaki koda sahibiz:
Objective-C:
- (void)viewDidLoad {
[super viewDidLoad];
self.view1.clipsToBounds = YES;
self.view2.clipsToBounds = NO;
}
Swift:
override func viewDidLoad() {
super.viewDidLoad()
self.view1.clipsToBounds = true
self.view2.clipsToBounds = false
}
Kodu çalıştırıp simülatörde veya cihaza baktığımızda şu sonuçları alıyoruz:
Dolayısıyla, bu görüşler aynı (dışında clipsToBounds
) kurulmasına rağmen , farklı görünüyorlar. Bu ne clipsToBounds
yapar. Olarak ayarlamak YES
en iyi sonucu sağlarken NO
, en alttaki sonucu sağlar.
Görünüm hiyerarşisinde hata ayıklayacak olursak, kara kutuların her ikisinin de aslında beyaz görünümün sınırlarını aştığını daha net görebiliriz, ancak yalnızca görünüm 2 bunu uygulama gerçekten çalışırken gösterir:
UITextView
gölgeler görünmez ; ? Eğer öyleyse , gayet iyi çalışıyorclipsToBounds
true
false