UIView子视图的顺序?

erd*_*mgc 3 subview addsubview ios subviews

如果我使用for循环;

for(UIView *subview in [myView subviews])
Run Code Online (Sandbox Code Playgroud)

在哪个顺序,带来了子视图?

根据他们增加的顺序或其他什么?

Luc*_*rdo 8

正如文档所说,它反映了他们在屏幕上的可见顺序.

@property(非原子,只读,复制)NSArray*子视图

讨论

您可以使用此属性检索与自定义视图层次结构关联的子视图.数组中子视图的顺序反映了它们在屏幕上的可见顺序,索引0处的视图是最后面的视图.

对于在UIKit和其他系统框架中声明的复杂视图,视图的任何子视图通常被视为私有,并且可能随时更改.因此,您不应尝试检索或修改这些类型的系统提供的视图的子视图.如果这样做,您的代码可能会在将来的系统更新期间中断.

  • 老问题和评论,但@AndreyChernukha,返回意味着距离查看器最远的视图,即 3D 层次结构中堆栈的底部。当您添加视图时,它们会被添加到堆栈的顶部,因此除了显式重新排序之外,顺序几乎与添加顺序相同。 (2认同)
  • @ChrisConover 非常感谢,伙计。那讲得通 (2认同)