यदि मेरा सुपरवाइव प्रत्येक तरफ 10 इकाइयों को मापने वाला एक बॉक्स है, और मेरा सबव्यू 20 यूनिट चौड़ा है, तो clipsToBounds
सेट के साथ YES
, मैं केवल सबव्यू का हिस्सा देखूंगा जो सुपरवाइवे की सीमा के भीतर फिट बैठता है। अन्यथा, यदि clipsToBounds
यह सेट है NO
, तो मैं संपूर्ण सबव्यू देखूंगा, यहां तक कि सुपरवाइवे के बाहर के हिस्से (यह मानकर कि हम अभी भी स्क्रीन पर हैं)।
एक दृश्य उदाहरण के रूप में, स्टोरीबोर्ड पर स्थापित निम्नलिखित विचारों पर विचार करें:
यह एक सफ़ेद है UIView
, ऊपर के बाएं कोने में एक लेबल है जिसमें या तो एक सरल "1" या "2" है ताकि मैं इन पर चर्चा कर सकूं view1
या view2
। इसके अतिरिक्त, काला दृश्य सफेद दृश्य के समान आकार का है, लेकिन यह मूल सफेद दृश्य के केंद्र में है।
नियंत्रक की viewDidLoad
विधि में, हमारे पास निम्नलिखित कोड हैं:
उद्देश्य सी:
- (void)viewDidLoad {
[super viewDidLoad];
self.view1.clipsToBounds = YES;
self.view2.clipsToBounds = NO;
}
स्विफ्ट:
override func viewDidLoad() {
super.viewDidLoad()
self.view1.clipsToBounds = true
self.view2.clipsToBounds = false
}
जब हम कोड चलाते हैं और सिम्युलेटर या डिवाइस में देखते हैं, तो हमें निम्नलिखित परिणाम मिलते हैं:
इसलिए, इन विचारों को पहचानने (छोड़कर clipsToBounds
) के बावजूद , वे अलग दिखते हैं। ये क्या clipsToBounds
करता है नीचे परिणाम प्रदान YES
करने के लिए इसे सेट करते हुए इसे शीर्ष परिणाम प्रदान करना होगा NO
।
अगर हम दृश्य पदानुक्रम को डिबग करते हैं, तो हम अधिक स्पष्ट रूप से देख सकते हैं कि दोनों ब्लैक बॉक्स वास्तव में सफेद दृश्य के बोर्डर का विस्तार करते हैं, लेकिन केवल 2 इसे दिखाता है जब ऐप वास्तव में चल रहा है:
UITextView
परछाई क्यों नहीं दिखाई देती, यदिclipsToBounds
संपत्ति के बराबरtrue
; ? यदि यह हैfalse
, ठीक काम करता है