मेरे पास दृश्य पदानुक्रम में एक यादृच्छिक बाल दृश्य है। रूट पर्यवेक्षक को पाने के लिए सबसे अच्छा/तेज़/क्लीव्रेस्ट तरीका क्या है?UIView। मैं रूट सुपरव्यू फास्ट कैसे ढूंढूं?
चीयर्स,
डौग
मेरे पास दृश्य पदानुक्रम में एक यादृच्छिक बाल दृश्य है। रूट पर्यवेक्षक को पाने के लिए सबसे अच्छा/तेज़/क्लीव्रेस्ट तरीका क्या है?UIView। मैं रूट सुपरव्यू फास्ट कैसे ढूंढूं?
चीयर्स,
डौग
अपने app केवल एक UIWindow
(आमतौर पर सही) है, और अगर उस खिड़की के केवल subview अपने जड़ नियंत्रक के दृश्य (भी आम तौर पर सच है) है:
[randomChildView.window.subviews objectAtIndex:0]
या आप view.superview
की जांच करके पदानुक्रम से बाहर चढ़ सकते हैं, जब तक कि आपको कोई ऐसा दृश्य न मिले, जिसका पर्यवेक्षण nil
है।
यह पर्यवेक्षक पदानुक्रम सीधे जाने के लिए प्रोसेसर समय की एक महत्वपूर्ण मात्रा है। मेरे पास यह मेरी UIView श्रेणी में है।
- (UIView *)rootView {
UIView *view = self;
while (view.superview != Nil) {
view = view.superview;
}
return view;
}
swift3/4:
func rootSuperView() -> UIView
{
var view = self
while let s = view.superview {
view = s
}
return view
}
मुझे यह पसंद है। चीयर्स। – dugla
आप दोबारा जांचना चाहेंगे कि आपको कभी भी यह पता चल जाएगा कि "पर्यवेक्षण शून्य है" मैंने कोशिश की और अनंत लूप में फंस गया। – finneycanhelp
चढ़ाई के वैकल्पिक केवल कुछ महत्वहीन प्रोसेसर चक्र लेते हैं, और आपको कुछ भी मानने की आवश्यकता नहीं है। मुझे अनंत लूप नहीं मिलता है। – TJez