iOS UIView视图的图层控制

1、添加视图

     insertSubview:atIndex:   //放在子视图数组的具体索引位置

     insertSubview:aboveSubview:   //某个子视图前面

     insertSubview:aboveSubview:   //某个子视图前面

2、重新排序和删除子视图

      [parentView exchangeSubviewAtIndex:i withSubviewAtIndex:j]//交换两个视图的位置

      bringSubviewToFront:和sendSubviewToBack://将子视图提前活置后

      [childView removeSuperview]//删除某个视图的子视图

3、视图回调

   某个视图的层次一改变,该视图就会收到一次回调。

   a、调用addSubivew:成功后会给该视图发送didAddSubivew:回调,触发UIView的子类在心增视图时执行其他操作。

   b、didMoveToSuperview:会通知相关视图他们的上级视图已经变化。

   c、视图移动前会发出willMoveToSuperview:回调

   d、didMoveToWindow:回调和didMoveToSuperview:相似,从命名上能看出其区别。

   e、willMoveToWindow:在视图移动前发出的回调。

    f、willRemoveToSubview:回调通知父视图子视图即将被删除


UIView掌管直接屏幕绘图。他的drawRect:方法提供一种低级方式来直接绘制内容,允许使用Quartz 2D调用创建和显示任意元素,可将这两个元素结合起来共同构建具体、可操作的界面。

当用户触摸屏幕时,Touchview类收集一系列点,在每个触摸移动之处,touchesMoved:WithEvent:方法调用setNeedsDisplay。这又会触发对drawRect:方法的调用,其中视图将这些点绘制成线段来创建一个可视屏幕路径。


UIView类的很多属性都被设计为可动画的(animatable)。可动画的属性是指当属性从一个值变为另一个值的时候,可以半自动地支持动画。您仍然必须告诉UIKit希望执行什么类型的动画,但是动画一旦开始,Core Animation就会全权负责。UIView对象中支持动画的属性有如下几个:

    frame

    bounds

    center

    transform

    alpha

边框、边界、和中心的关系

视图对象通过frame、bounds、和center属性声明来跟踪自己的大小和位置。frame属性包含一个矩形,即边框矩形,用于指定视图相对于其父视图坐标系统的位置和大小。bounds属性也包含一个矩形,即边界矩形,负责定义视图相对于本地坐标系统的位置和大小。虽然边界矩形的原点通常被设置为 (0, 0),但这并不是必须的。center属性包含边框矩形的中心点。

posted @ 2019-07-16 18:03  brave-sailor  阅读(468)  评论(0编辑  收藏  举报