UIView是所有UI控件的父类。UIView类的对象负责屏幕上一个矩形区域的显示和行为动作。我们熟知的UIButton,UIImageview等等都继承自UIView,因此,UIView所具备的属性和方法,其子类也都同样具备。
UIView类(视图类)负责管理屏幕上的一块矩形区域,包括这个区域内的显示样式,比如背景颜色,大小,以及行为动作,例如监测用户点击等触碰事件。
视图还可以用于管理一个或者多个子视图。用户看到的某个样式,有可能是多个视图叠加后的显示效果。视图的这种布局方式,也称为视图层次,一个父视图可以包含任意多个子视图。同时,父视图的属性有时也会影响到子视图的样式以及用户交互行为。
总体来讲,视图类的主要作用有如下3个方面:
样式显示与动画:负责自身矩形区域内样式的显示,以及某些属性(大小、位置、角度)变化时的动画过渡效果;
布局与子视图管理:管理子视图
事件处理:接收触摸事件。
在iOS开发中,UIView与UIViewController紧密协作,UIViewController负责UIView的加载与卸载。有关UIViewController的介绍,可以参考UIViewController相关教程:UIViewController介绍:1-创建控制器
2、UIKit族图
通过UIKit的族图可以看到,UIView继承自UIResponder,因此UIView可以响应用户交互。另外,我们熟知的一些常用控件都继承自UIView。需要特别说明的是,UIWindow也是继承自UIView,窗口可以认为是一个特殊的View。(有关UIWindow的知识,可以参见:UIWindow、UIView、UIViewController的关系)
3、最常使用的UIView属性
在iOS开发中,有些UIView的属性是非常常用的,在此给大家简单列举一些,后面课程中会做详细讲解。
/*UIView有关样式的常用属性*/
@property(nonatomic)CGRectframe;
@property(nonatomic)CGRectbounds;
@property(nonatomic)CGPointcenter;
@property(nonatomic)CGAffineTransformtransform;
@property(nullable,nonatomic,copy)UIColor*backgroundColor;
@property(nonatomic)CGFloatalpha;
@property(nonatomic,getter=isHidden)BOOL hidden;
/*UIView管理子视图的常用属性和方法*/
@property(nullable,nonatomic,readonly)UIView*superview;
@property(nonatomic,readonly,copy)NSArray*subviews;
@property(nullable,nonatomic,readonly)UIWindow*window;
-(void)removeFromSuperview;
-(void)addSubview:(UIView*)view;
-(void)bringSubviewToFront:(UIView*)view;
/*UIView有关动画的属性和方法*/
+(void)animateWithDuration:(NSTimeInterval)duration animations:(void(^)(void))animations completion:(void(^__nullable)(BOOL finished))completion NS_AVAILABLE_IOS(4_0);
+(void)animateWithDuration:(NSTimeInterval)duration animations:(void(^)(void))animations NS_AVAILABLE_IOS(4_0);
/*UIView有关交互的常用属性与方法*/
@property(nullable,nonatomic,copy)NSArray*gestureRecognizers;
-(void)addGestureRecognizer:(UIGestureRecognizer*)gestureRecognizer;
-(void)removeGestureRecognizer:(UIGestureRecognizer*)gestureRecognizer;