iOS系统学习UIView属性

作者: 卖萌的提莫 | 来源:发表于2016-07-12 23:42 被阅读0次

    本文献给所有想学习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 默认值 

    @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属性

        本文链接:https://www.haomeiwen.com/subject/xcjsjttx.html