view的层次结构
UIScreen
这个属性我们直接与其打交道的机会较少,介绍几个可能用到的方法和属性。
- +mainScreen拿到当前设备的屏幕大小
-
multiple screens外接屏幕会用到
- .scale操纵的点所对应屏幕的像素
- .coordinateSpace坐标随着屏幕转动等改变
-
.fixedCoordinateSpace坐标不变
下面这个是比较方便的截图方法,返回一个UIView。
UIWindow
-
-makeVisibleAndKey,当前显示的关键window,响应用户的window
- 遮掩任务栏的方法,在
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
设置window.windowlevel属性值
UIView
Clipping效果
当view的superView.clipsToBounds属性为YES时,它在superView外面的部分会被裁掉,效果如图:
view的基本操纵方法
view的重要属性
- .frame、.bounds、.center、.transform(控制平移、旋转、缩放等属性,提一下,在这个view中其他子view或者行为是在transfrom发生之后的视图里绘制的。)
- -resizeToFit方法,使view的大小根据它自己的内容调整
- .alpha,该属性表明view的半透明程度(0.0~1.0),为0时完全透明也不响应事件;.opaque(BOOL),为NO时是不透明的,如果alpha值不为1,opaque的值也不能为YES,注意逻辑关系。
- . maskView,这个属性接收一个UIView对象,这个对象作为一个模板,如果该对象.alpha为不透明的,会把当前view裁剪;透明的就直接显示原view;半透明,它们颜色会混合。
- .tag,每个view可以设置一个tag属性,为整数,我们可以通过viewWithTag的方法便捷访问该view。(不推荐使用,影响程序的可读性)
- .tintColor,用来调色,当这个属性被设置后,所有在该view上的子view沿用tintColor的调色
-
UIAppearance
事件处理
事件
什么是事件?触摸、摇动、线控等,这些对设备发出的操控信号我们称之为事件。
NSRunLoop
监听事件源,包括系统的、custom和计时器的,然后接收系统touchEvent对象,通过主线程,包装成UIEvent的对象发送给当前程序,再到当前keyWindow,最后是具体响应这些事件的对象UIResponder
UIResponder
它是UIWindow、UIViewController、UIView的父类,为子类提供以下接口
Responder有.nextResponder属性,指向下一个Responder,然后对于First Responder,有特别的一些方法
分别是判断是不是第一个Responder,可不可以成为第一个Responder,成为第一个Responder,取消第一个Responder。