Görünüm hiyerarşisinde rastgele bir alt görünüm var. Kök süper görüşüne ulaşmanın en iyi/en hızlı/en akıllı yolu nedir?UIView. Kök SuperView'ı Nasıl Hızlı Bulurum?
Alkış,
Doug
Görünüm hiyerarşisinde rastgele bir alt görünüm var. Kök süper görüşüne ulaşmanın en iyi/en hızlı/en akıllı yolu nedir?UIView. Kök SuperView'ı Nasıl Hızlı Bulurum?
Alkış,
Doug
uygulama yalnızca bir UIWindow
(genellikle true) varsa ve bu pencerenin sadece Subview (ayrıca genellikle doğru) kök kontrolörün görünümü ise:
[randomChildView.window.subviews objectAtIndex:0]
Veya nil
numaralı görüntünün bulunduğu bir görünüm bulana kadar view.superview
'u denetleyerek sıradüzenli olarak hiyerarşiden çıkabilirdiniz.
Bu, süper görünüm hiyerarşisine doğrudan gitmek için önemsiz miktarda işlemci zamanı. Bu UIView kategorisinde var.
- (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
}
hoşuma gidiyor. Şerefe. – dugla
Bir "süper görüntü nil" olduğunu anlayacağınızı iki kez kontrol etmek isteyebilirsiniz. Bunu denedim ve sonsuz bir döngüde sıkışıp kaldım. – finneycanhelp
Tırmanma alternatifi sadece birkaç önemsiz işlemci döngüsü gerektirir ve hiçbir şey almanıza gerek yoktur. Sonsuz bir döngü almıyorum. – TJez