17
A
回答
24
如果您的應用程序只有一個UIWindow
(通常如此),如果該窗口的唯一子視圖是您的根控制器的視圖(也通常如此):
[randomChildView.window.subviews objectAtIndex:0]
或者您可以通過檢查view.superview
遞歸爬出層次結構,直到找到超級視圖爲nil
的視圖。
11
這是一個微不足道的處理器時間去直接超視圖層次結構。我在我的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
}
相關問題
- 1. 如何將UIView移到SuperView之外?
- 2. UIView,其superview和touchesBegan:
- 3. 快速定製UIView
- 4. 如何在UIView中快速嵌入UILabel
- 5. 快速shell找到
- 6. 我如何找到最父母的SuperView?
- 7. 從superview中刪除UIView
- 8. 快速定位uiview圖層
- 9. 如何找到root UIViewController
- 10. 快速找不到模塊
- 11. 快速:找不到模塊?
- 12. 如何加快UIView快照?
- 13. 快速找到不愉快的號碼
- 14. 快速查找
- 15. 快速查找
- 16. 我如何monkeypatch快速查看查找?
- 17. 字典如何快速查找
- 18. 快速查找Java
- 19. UIView部分在superView不在接收中
- 20. Superview中的自定義UIView放置
- 21. 的UIView沒有大小本身的SuperView
- 22. 快速問題與UIView的框架
- 23. [UIView transitionWithView ...]的快速系列不順利
- 24. ios UIView initWithCoder加載速度太快
- 25. 在UIView上快速繪製UIImage圖像
- 26. UIView快速更改其位置
- 27. 快速在UIView子類中創建子視圖
- 28. 如何在iPhone SDK中獲取UIView的superView的UIViewController?
- 29. 找得到的對象快速CSV
- 30. 快速地找到對象在JavaScript
我喜歡它。乾杯。 – dugla 2011-05-29 15:49:09
你可能要仔細檢查一下你是否會發現「superview is nil」我試過了,並陷入了無限循環。 – finneycanhelp 2012-04-08 19:19:23
攀登的替代方案只需要幾個微不足道的處理器週期,而且您不需要假設任何東西。我沒有得到一個無限循環。 – TJez 2013-11-08 13:54:37