UIView控件

2021-04-15  本文已影响0人  落魄的iOS程序员

UIView是视图展示,主要用于用户交互,负责渲染区域内容,并响应区域内的触摸事件,在上篇文章的图中不难看出,UIVIew继承于UIResponder,在iOS中大部分控件都继承于UIView。

在使用UIView的过程中我们应该注意:管理区域里面的内容展示,对子视图的布局,对相应区域触摸事件的处理以及动画效果的实现。下面我们先看看常用的UIView的属性以及API。

initWithFrame: 初始化一个UIView对象,并设置它的区域大小,这里需要注意的是frame和bounds的却别,frame是相对于父视图,而bounds是相对于自身。

这里用一个简单的测试一目了然,代码如下:

输出结果:

initWithCoder: 这也是初始化UIIView对象,和initWithFrame: 却别在于initWithCoder:方法通过xib或者storyboard初始化的时候回调用,当然我们需要在代码中手动调用xib或者storyboard视图的时候也可以重写initWithCoder:方法。

@property(nonatomic)BOOL userInteractionEnabled;属性,默认是YES,设置为NO时就不会响应触摸事件。

@property(nonatomic)BOOL canBecomeFocused;属性,默认是NO,是否允许被设置为高亮。

@property(nonatomic) CGPoint center;相对于父视图控件的中心点坐标@property(nonatomic) CGAffineTransform transform;仿射变化,可做动画是一个3行2列的矩阵  用来对控件进行位移,缩放,旋转等

@property(nonatomic) CGFloat contentScaleFactor; 界面内容与屏幕的缩放比例 默认为1.000

@property(nonatomic,getter=isMultipleTouchEnabled) BOOL multipleTouchEnabled; 是否支持多点触摸默认为NO

@property(nonatomic,getter=isExclusiveTouch) BOOL exclusiveTouch;解决多点触摸时的事件冲突 默认为NO

@property(nonatomic) BOO LautoresizesSubviews;是否自动调整该控件子视图的大小 默认为YES会根据属性autoresizingMask的设置自动调整大小布局用的没有AutoLayout强大

@property(nonatomic) UIViewAutoresizing autoresizingMask;如果autoresizesSubviews被设置为YES就会按照autoresizingMask的值,让子视图做适应的调整

@property(nullable, nonatomic,readonly) UIView*superview;该控件所在的父视图

@property(nonatomic,readonly,copy) NSArray<__kindof UIView *> *subviews;不可变数组,存储的是该视图的所有自视图

@property(nullable, nonatomic,readonly) UIWindow*window;该控件所处的窗口

@property (nonatomic) UIEdgeInsets layoutMargins ;控件上左下右的间距,默认是8,可以更改该方向的值,

@property (nonatomic) BOOL preservesSuperviewLayoutMargins;默认为NO,设置为YES时布局时布局会受到父视图的LayoutMargins受影响

@property(readonly,strong) UILayoutGuide *layoutMarginsGuide;布局引导的区域 

@property (nonatomic, readonly, strong) UILayoutGuide *readableContentGuide;同layoutMarginsGuide属性,从字面上可以看出是只读。

@property(nonatomic)BOOL clipsToBounds;默认为NO,当设置为YES时子视图超过父视图时会裁剪超出部分。

@property(nullable, nonatomic,copy) UIColor *backgroundColor;设置控件的背景颜色

@property(nonatomic)CGFloat alpha;设置alpha的透明度,0-1.0,默认是1.0

上一篇下一篇

猜你喜欢

热点阅读