iOS系统学习UIView属性

本文献给所有想学习iOS的开发人员(PS:像提高技术水平还得靠自己多多实践)

@property(nonatomic,getter=isUserInteractionEnabled) BOOL userInteractionEnabled;

表示能否与用户交互

@property(nonatomic)NSInteger tag 

表示控件的唯一标识,可通过父控件的viewWithTag:tag方法获取该控件

@property(nonatomic,readonly,strong) CALayer *layer;

与该控件对应的图层,用来做动画,添加边框及修改边框样式等 功能强大

@property (nonatomic) UISemanticContentAttribute semanticContentAttribute

改变界面布局方式,对于有些国家来说,他们是从右往左阅读的 下面是强制效果和未用效果 e.g

self.view.semanticContentAttribute=UISemanticContentAttributeForceRightToLeft
iOS系统学习UIView属性_第1张图片
默认值 

@property(nonatomic) CGRect frame;

frame是一个结构体由origin,size两个结构体组成控件的位置以及大小,与bounds的区别是该控件的frame是相对于父视图位置的所以orign默认永远都是(在父视图上的x位置,父视图上y的位置),而bounds是相对于本身的所以他的orign默认永远都是(0,0)

@property(nonatomic) CGRect bounds

 控件的大小

@property(nonatomic) CGPoint center  ;

控件的中心点 相对于父视图而言计算方式x =父视图位置x+该控件宽度的一半 y =父视图位置y+该控件高度的一半

@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) BOOLautoresizesSubviews

是否自动调整该控件子视图的大小 默认为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 使用了AutoLayout并且设置布局与layoutMargins人上下左右一个方向的关系,可以更改该方向的值,

@property (nonatomic) BOOL preservesSuperviewLayoutMargins

布局是否受父视图的LayoutMargins的影响默认为NO如果为YES则布局时会忽略父视图默认的LayoutMargins进行布局(测试时只有left受影响)即该控件的leftMargin=指定值+父视图默认的leftMarginleftMargin=指定值;他们的frame不变更改父视图LayoutMargins还是原来{8,8,8,8}的位置

@property(readonly,strong) UILayoutGuide *layoutMarginsGuide

布局引导的区域

@property (nonatomic, readonly, strong) UILayoutGuide *readableContentGuide

与layoutMarginsGuide属性一样不过只能读取

@property(nonatomic)BOOL clipsToBounds;

当子视图超过父视图时会裁剪超过父视图大小的区域 默认为NO表示不裁剪

@property(nullable, nonatomic,copy) UIColor *backgroundColor

设置控件的背景颜色默认为nil

@property(nonatomic)CGFloat alpha

;设置alpha的透明度,当alpha小于等于0.01时是不可以与用户交互的,还有就是alpha会影响子视图的可见性

@property(nonatomic,getter=isOpaque) BOOL opaque;

默认为YES与图形绘制性能优化有关表示不透明时,(当设置opaque为NO)系统在绘制该控件即根据该控件颜色绘制, 如果该控件是透明的可能会出现不可预知的错误(此时alpha =0,opaque=YES)

@property(nonatomic)BOOLclearsContextBeforeDrawing;

绘制之前清除上下文

@property(nonatomic,getter=isHidden) BOOLhidden

;控件不可见,不能与用户交互

@property(nonatomic)UIViewContentMode contentMode

调整控件内容的缩放比例 比如UIImageView的图片

@property(nullable, nonatomic,strong)UIView*maskView

使用view作为控件的蒙版使用时如果不指定不指定大小 表示对这个控件的区域进行蒙版

当指定了frame时以及background时表示这个frame的区域取消蒙版

@property(null_resettable, nonatomic, strong) UIColor *tintColor 

着色能够改变某些控件轮廓文字,滑动条镂空图的颜色该属性受如果为默认值(PS:UISegementedControl UISlider等),则受superView父视图的tintColor的影响,否则为该属性的color

@property(nonatomic) UIViewTintAdjustmentMode tintAdjustmentMode tintColor的颜色渲染方式默认为UIViewTintAdjustmentModeNormal此时受父视图的这个属性影响如果为UIViewTintAdjustmentModeDimmed则控件的颜色会变为灰色

@property (copy, nonatomic) NSArray<__kindof UIMotionEffect *> *motionEffects

返回该控件所有有motionEffect所组成的数组UIMotionEffect用于做视觉差效果,感觉适备的摆动进行做动画

@property(nonatomic,readonly) NSArray<__kindof NSLayoutConstraint *> *constraints

(如果勾选并使用了AutoLayout)返回该控件的布局约束组成的数组

@property(nonatomic) BOOL translatesAutoresizingMaskIntoConstraints NS_AVAILABLE_IOS(6_0);默认为YES

如果使用AutoLayout来进行布局,此时AutoresizingMask这个布局方式会转换为适当的AutoLayout的约束为NO则不转换

@property (nullable, nonatomic, copy) NSString *restorationIdentifier

旋转标识符

你可能感兴趣的:(iOS系统学习UIView属性)