首页 理论教育 深入探索UIView的层次结构

深入探索UIView的层次结构

时间:2023-06-23 理论教育 版权反馈
【摘要】:更改父视图的大小会产生连锁反应,导致其子视图的大小和位置一同发生变化。视图层次结构中的视图排列也决定了应用程序如何响应事件。当在特定视图内发生触摸事件时,系统会将具有触摸信息的事件对象直接发送到该视图以进行处理。如果没有对象处理该事件,它最终会到达应用程序对象,该对象通常会因为无法响应而丢弃这个事件。

深入探索UIView的层次结构

视图除了提供自身的展示内容外,还可以充当其他视图的容器。当一个视图添加另一个视图时,两个视图之间便成了父子关系,被包含的视图称为子视图,而包含另一个的视图称为父视图或上级视图。这种关系会对应用程序的界面和交互行为产生影响。

在界面上,子视图的内容遮盖了其父视图的全部或部分内容。如果子视图完全不透明,则子视图占用的区域完全遮盖了父视图的相应区域;如果子视图部分透明,则会显示子视图与父视图叠加之后合成的内容。每个父视图将其子视图存储在有序数组中,该数组中的顺序也会影响每个子视图的可见性。如果两个兄弟子视图相互重叠,则最后添加的子视图(或被移动到子视图数组末尾的子视图)将显示在所有子视图的顶部。

父视图和子视图的关系也会影响视图的布局。更改父视图的大小会产生连锁反应,导致其子视图的大小和位置一同发生变化。当更改父视图的大小时,开发者可以通过代码来重新布局子视图以适配当前父视图的大小。此外子视图还会受父视图其他改变的影响,比如隐藏父视图、更改父视图的alpha(透明度)或改变父视图自身的坐标系(旋转、放大、缩小等)。(www.xing528.com)

视图层次结构中的视图排列也决定了应用程序如何响应事件。当在特定视图内发生触摸事件时,系统会将具有触摸信息的事件对象直接发送到该视图以进行处理。但是,如果视图不处理特定的触摸事件,它可以将事件对象传递给其父视图,如果父视图不处理事件,它会将事件对象再传递给它的父视图,以此传递响应者链。特定视图还可以将事件对象传递给介入的响应器对象,例如视图控制器。如果没有对象处理该事件,它最终会到达应用程序对象,该对象通常会因为无法响应而丢弃这个事件。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈