从我一开始学IOS开始就一直在操纵各种视图,例如Button、label、TextFiled...
它们所有都继承与 UIView ,今天我就想来了解一下这个几乎是所有视图的父类。
由于这个类的文档有134页之多,所以我会分成几次把它写完
UIView 继承于UIResponder
所遵守的协议有 NSCoding 、UIAppearance、 UIAppearanceContainer
UIDynamicItem、 NSObject
从继承的类我们就可以看出 UIView 这个类可以响应手势
那么我们就从它的属性开始这一旅程吧
//透明度的设置从最小0.0到1.0 ,1.0为完全不透明,
//其中这个属性只影响当前视图,并不会影响其子视图
@property(nonatomic, getter=isOpaque) BOOL opaque
//决定当前视图是否是透明的
@property(nonatomic) BOOL autoresizesSubviews
//这个属性是决定当视图大小边界发生改变时,其子视图是否也跟着自动调整大小
@property(nonatomic) UIViewAutoresizing autoresizingMask
//决定当当前视图的父视图大小发生变化时,当前视图该怎么调整自己的size
@property(nonatomic, copy) UIColor *backgroundColor //当前视图的背景色
@property(nonatomic) CGRect bounds
//当前视图的边界,包括大小和原点,这里是在系统坐标系下
@property(nonatomic) CGRect frame
//当前视图的边界,包括大小和原点,这里是在父视图的坐标系下
@property(nonatomic) CGPoint center //当前视图的中心,并指定是在父视图的坐标系下
@property(nonatomic) BOOL clearsContextBeforeDrawing
//决定在视图重画之前是否先清理视图以前的内容,缺省值为YES
//如果你把这个属性设为NO,那么你要保证能在 drawRect:方法中正确的绘画。如果你的代码
//已经做了大量优化,那么设为NO可以提高性能,尤其是在滚动时可能只需要重新绘画视图的一部分
@property(nonatomic) BOOL clipsToBounds
//决定子视图是否被限定在当前视图的bounds中,缺省值为NO
@property(nonatomic) UIViewContentMode contentMode
//决定当视图边界变时呈现视图内容的方式
@property(nonatomic) CGFloat contentScaleFactor
//应用到当前视图的比例Scale
@property(nonatomic, getter=isExclusiveTouch) BOOL exclusiveTouch
//决定当前视图是否是处理触摸事件的唯一对象
@property(nonatomic, copy) NSArray *gestureRecognizers
//当前视图所附加的手势识别器
@property(nonatomic, getter=isHidden) BOOL hidden
//当前视图是否隐藏
@property(nonatomic, readonly, retain) CALayer *layer
//用于视图渲染的核心动画层
@property(copy, nonatomic) NSArray *motionEffects
//当前视图的运动效果,IOS7才开始拥有
@property(nonatomic, getter=isMultipleTouchEnabled) BOOL multipleTouchEnabled
//当前视图是否接受多点触控事件,缺省值为NO
@property(nonatomic, copy) NSString *restorationIdentifier
//该标示符决定该视图是否支持恢复状态,其实也只是个标示符而已
//个人觉得就相当于配置表视图每个单元格时使用的标示符一样,可以直接在内存中重用,提高了性能
//还有一点需注意,不应该简单的定义这个标示符,因为其所属的view controller ,还有view controller的
//所有 父view controllers都必须有一个恢复标识符
@property(nonatomic, readonly, copy) NSArray *subviews //当前视图的所有子视图
@property(nonatomic, readonly) UIView *superview //当前视图的父视图
@property(nonatomic) NSInteger tag //当前视图的标签
@property(nonatomic) UIViewTintAdjustmentMode tintAdjustmentMode
//色调调整模式,开始用于IOS7
@property(nonatomic, retain) UIColor *tintColor
//色调颜色,开始用于IOS7
@property(nonatomic) CGAffineTransform transform //视图的仿射变换
@property(nonatomic, getter=isUserInteractionEnabled) BOOL userInteractionEnabled
//决定与用户交互事件是否从被忽略并从事件队列中移除
@property(nonatomic, readonly) UIWindow *window //当前视图上的UIWindow对象
以上就是 UIView 这个类的全部属性。
好了今天就先到这里,接下来就要开始 UIView 中的方法了。
它们所有都继承与 UIView ,今天我就想来了解一下这个几乎是所有视图的父类。
由于这个类的文档有134页之多,所以我会分成几次把它写完
UIView 继承于UIResponder
所遵守的协议有 NSCoding 、UIAppearance、 UIAppearanceContainer
UIDynamicItem、 NSObject
从继承的类我们就可以看出 UIView 这个类可以响应手势
那么我们就从它的属性开始这一旅程吧
UIView 之属性篇 Properties
//透明度的设置从最小0.0到1.0 ,1.0为完全不透明,
//其中这个属性只影响当前视图,并不会影响其子视图
@property(nonatomic, getter=isOpaque) BOOL opaque
//决定当前视图是否是透明的
@property(nonatomic) BOOL autoresizesSubviews
//这个属性是决定当视图大小边界发生改变时,其子视图是否也跟着自动调整大小
@property(nonatomic) UIViewAutoresizing autoresizingMask
//决定当当前视图的父视图大小发生变化时,当前视图该怎么调整自己的size
@property(nonatomic, copy) UIColor *backgroundColor //当前视图的背景色
@property(nonatomic) CGRect bounds
//当前视图的边界,包括大小和原点,这里是在系统坐标系下
@property(nonatomic) CGRect frame
//当前视图的边界,包括大小和原点,这里是在父视图的坐标系下
@property(nonatomic) CGPoint center //当前视图的中心,并指定是在父视图的坐标系下
@property(nonatomic) BOOL clearsContextBeforeDrawing
//决定在视图重画之前是否先清理视图以前的内容,缺省值为YES
//如果你把这个属性设为NO,那么你要保证能在 drawRect:方法中正确的绘画。如果你的代码
//已经做了大量优化,那么设为NO可以提高性能,尤其是在滚动时可能只需要重新绘画视图的一部分
@property(nonatomic) BOOL clipsToBounds
//决定子视图是否被限定在当前视图的bounds中,缺省值为NO
@property(nonatomic) UIViewContentMode contentMode
//决定当视图边界变时呈现视图内容的方式
@property(nonatomic) CGFloat contentScaleFactor
//应用到当前视图的比例Scale
@property(nonatomic, getter=isExclusiveTouch) BOOL exclusiveTouch
//决定当前视图是否是处理触摸事件的唯一对象
@property(nonatomic, copy) NSArray *gestureRecognizers
//当前视图所附加的手势识别器
@property(nonatomic, getter=isHidden) BOOL hidden
//当前视图是否隐藏
@property(nonatomic, readonly, retain) CALayer *layer
//用于视图渲染的核心动画层
@property(copy, nonatomic) NSArray *motionEffects
//当前视图的运动效果,IOS7才开始拥有
@property(nonatomic, getter=isMultipleTouchEnabled) BOOL multipleTouchEnabled
//当前视图是否接受多点触控事件,缺省值为NO
@property(nonatomic, copy) NSString *restorationIdentifier
//该标示符决定该视图是否支持恢复状态,其实也只是个标示符而已
//个人觉得就相当于配置表视图每个单元格时使用的标示符一样,可以直接在内存中重用,提高了性能
//还有一点需注意,不应该简单的定义这个标示符,因为其所属的view controller ,还有view controller的
//所有 父view controllers都必须有一个恢复标识符
@property(nonatomic, readonly, copy) NSArray *subviews //当前视图的所有子视图
@property(nonatomic, readonly) UIView *superview //当前视图的父视图
@property(nonatomic) NSInteger tag //当前视图的标签
@property(nonatomic) UIViewTintAdjustmentMode tintAdjustmentMode
//色调调整模式,开始用于IOS7
@property(nonatomic, retain) UIColor *tintColor
//色调颜色,开始用于IOS7
@property(nonatomic) CGAffineTransform transform //视图的仿射变换
@property(nonatomic, getter=isUserInteractionEnabled) BOOL userInteractionEnabled
//决定与用户交互事件是否从被忽略并从事件队列中移除
@property(nonatomic, readonly) UIWindow *window //当前视图上的UIWindow对象
以上就是 UIView 这个类的全部属性。
好了今天就先到这里,接下来就要开始 UIView 中的方法了。