本文献给所有想学习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
@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
旋转标识符