美文网首页
基于UIView的自动布局

基于UIView的自动布局

作者: 智狸 | 来源:发表于2022-11-16 15:01 被阅读0次

    UIView的自动布局约束,NSAutoLayout自动布局代码的封装,XIB自动布局适配

    UIView+ZLConstraint.h :

    /** 比例值 Aspect Ratio */

    #define ZLScaleValue(scaleValue) scaleValue/320.0*[UIScreen mainScreen].bounds.size.width

    /**

     * UIView的自动布局约束,NSAutoLayout自动布局代码的封装,XIB自动布局适配

     * 在以下代码中添加 [view.superview layoutIfNeeded]; 实现动画.

     * [UIView animateWithDuration:0.1 animations:^{

     *    code...

     *    [view.superview layoutIfNeeded];

     * }];

     */

    @interfaceUIView(ZLConstraint)

    #pragma mark- REMOVE

    /**

     删除约束属性

     @param  superview                           父视图

     @param  view                                     当前添加约束的视图

     @param  viewLayoutAttribute          当前视图添加的约束属性

     @param  toView                                 关联的视图

     @param  toViewLayoutAttribute      关联视图的约束属性

     @return instancetype                        当前视图对象

     */

    - (instancetype)removeConstraintWithSuperview:(UIView*)superviewview:(UIView*)viewviewLayoutAttribute:(NSLayoutAttribute)viewLayoutAttributetoView:(nullableUIView*)toViewtoViewLayoutAttribute:(NSLayoutAttribute)toViewLayoutAttribute;

    #pragma mark - REMOVE SELF TO

    /**

     删除上对上约束属性

     @param  superview          父视图

     @param  view              当前添加约束的视图

     @param  toView            关联的视图

     @return instancetype      当前视图对象

     */

    - (instancetype)removeTopEqualTopConstraintWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView;

    /**

     删除上对下约束属性

     @param  superview          父视图

     @param  view              当前添加约束的视图

     @param  toView            关联的视图

     @return instancetype      当前视图对象

     */

    - (instancetype)removeTopEqualBottomConstraintWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView;

    /**

     删除下对下约束属性

     @param  superview          父视图

     @param  view              当前添加约束的视图

     @param  toView            关联的视图

     @return instancetype      当前视图对象

     */

    - (instancetype)removeBottomEqualBottomConstraintWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView;

    /**

     删除下对上约束属性

     @param  superview          父视图

     @param  view              当前添加约束的视图

     @param  toView            关联的视图

     @return instancetype      当前视图对象

     */

    - (instancetype)removeBottomEqualTopConstraintWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView;

    /**

     删除左对左约束属性

     @param  superview          父视图

     @param  view              当前添加约束的视图

     @param  toView            关联的视图

     @return instancetype      当前视图对象

     */

    - (instancetype)removeLeadingEqualLeadingConstraintWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView;

    /**

     删除左对右约束属性

     @param  superview          父视图

     @param  view              当前添加约束的视图

     @param  toView            关联的视图

     @return instancetype      当前视图对象

     */

    - (instancetype)removeLeadingEqualTrailingConstraintWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView;

    /**

     删除右对右约束属性

     @param  superview          父视图

     @param  view              当前添加约束的视图

     @param  toView            关联的视图

     @return instancetype      当前视图对象

     */

    - (instancetype)removeTrailingEqualTrailingConstraintWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView;

    /**

     删除右对左约束属性

     @param  superview          父视图

     @param  view              当前添加约束的视图

     @param  toView            关联的视图

     @return instancetype      当前视图对象

     */

    - (instancetype)removeTrailingEqualLeadingConstraintWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView;

    /**

     删除宽度对宽度约束属性

     @param  superview          父视图

     @param  view              当前添加约束的视图

     @param  toView            关联的视图

     @return instancetype      当前视图对象

     */

    - (instancetype)removeWidthEqualWidthConstraintWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView;

    /**

     删除高度对高度约束属性

     @param  superview          父视图

     @param  view              当前添加约束的视图

     @param  toView            关联的视图

     @return instancetype      当前视图对象

     */

    - (instancetype)removeHeightEqualHeightConstraintWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView;

    /**

     删除水平居中对水平居中约束属性

     @param  superview          父视图

     @param  view              当前添加约束的视图

     @param  toView            关联的视图

     @return instancetype      当前视图对象

     */

    - (instancetype)removeCenterXEqualCenterXConstraintWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView;

    /**

     删除垂直居中对垂直居中约束属性

     @param  superview          父视图

     @param  view              当前添加约束的视图

     @param  toView            关联的视图

     @return instancetype      当前视图对象

     */

    - (instancetype)removeCenterYEqualCenterYConstraintWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView;

    #pragma mark- REMOVE SELF

    /**

     删除上对上约束属性

     @param  superview          父视图

     @param  toView            关联的视图

     @return instancetype      当前视图对象

     */

    - (instancetype)removeTopEqualTopConstraintWithSuperview:(UIView *)superview toView:(UIView *)toView;

    /**

     删除上对下约束属性

     @param  superview          父视图

     @param  toView            关联的视图

     @return instancetype      当前视图对象

     */

    - (instancetype)removeTopEqualBottomConstraintWithSuperview:(UIView *)superview toView:(UIView *)toView;

    /**

     删除下对下约束属性

     @param  superview          父视图

     @param  toView            关联的视图

     @return instancetype      当前视图对象

     */

    - (instancetype)removeBottomEqualBottomConstraintWithSuperview:(UIView *)superview toView:(UIView *)toView;

    /**

     删除下对上约束属性

     @param  superview          父视图

     @param  toView            关联的视图

     @return instancetype      当前视图对象

     */

    - (instancetype)removeBottomEqualTopConstraintWithSuperview:(UIView *)superview toView:(UIView *)toView;

    /**

     删除左对左约束属性

     @param  superview          父视图

     @param  toView            关联的视图

     @return instancetype      当前视图对象

     */

    - (instancetype)removeLeadingEqualLeadingConstraintWithSuperview:(UIView *)superview toView:(UIView *)toView;

    /**

     删除左对右约束属性

     @param  superview          父视图

     @param  toView            关联的视图

     @return instancetype      当前视图对象

     */

    - (instancetype)removeLeadingEqualTrailingConstraintWithSuperview:(UIView *)superview toView:(UIView *)toView;

    /**

     删除右对右约束属性

     @param  superview          父视图

     @param  toView            关联的视图

     @return instancetype      当前视图对象

     */

    - (instancetype)removeTrailingEqualTrailingConstraintWithSuperview:(UIView *)superview toView:(UIView *)toView;

    /**

     删除右对左约束属性

     @param  superview          父视图

     @param  toView            关联的视图

     @return instancetype      当前视图对象

     */

    - (instancetype)removeTrailingEqualLeadingConstraintWithSuperview:(UIView *)superview toView:(UIView *)toView;

    /**

     删除宽度对宽度约束属性

     @param  superview          父视图

     @param  toView            关联的视图

     @return instancetype      当前视图对象

     */

    - (instancetype)removeWidthEqualWidthConstraintWithSuperview:(UIView *)superview toView:(UIView *)toView;

    /**

     删除高度对高度约束属性

     @param  superview          父视图

     @param  toView            关联的视图

     @return instancetype      当前视图对象

     */

    - (instancetype)removeHeightEqualHeightConstraintWithSuperview:(UIView *)superview toView:(UIView *)toView;

    /**

     删除宽度约束属性

     @return instancetype      当前视图对象

     */

    - (instancetype)removeWidthConstraint;

    /**

     删除高度约束属性

     @return instancetype      当前视图对象

     */

    - (instancetype)removeHeightConstraint;

    /**

     删除水平居中对水平居中约束属性

     @param  superview          父视图

     @param  toView            关联的视图

     @return instancetype      当前视图对象

     */

    - (instancetype)removeCenterXEqualCenterXConstraintWithSuperview:(UIView *)superview toView:(UIView *)toView;

    /**

     删除垂直居中对垂直居中约束属性

     @param  superview          父视图

     @param  toView            关联的视图

     @return instancetype      当前视图对象

     */

    - (instancetype)removeCenterYEqualCenterYConstraintWithSuperview:(UIView *)superview toView:(UIView *)toView;

    #pragma mark- ADD

    /**

     添加约束属性

     @param  superview                         父视图

     @param  view                                   当前需要添加约束的视图

     @param  viewLayoutAttribute        当前视图添加的约束属性

     @param  toView                               关联的视图

     @param  toViewLayoutAttribute    关联视图的约束属性

     @param  constant                           大小值

     @return instancetype                     当前视图对象

     */

    - (instancetype)addConstraintWithSuperview:(UIView*)superviewview:(UIView*)viewviewLayoutAttribute:(NSLayoutAttribute)viewLayoutAttributetoView:(nullableUIView*)toViewtoViewLayoutAttribute:(NSLayoutAttribute)toViewLayoutAttributeconstant:(CGFloat)constant;

    #pragma mark- ADD SELF TO

    /**

     添加上对上约束属性

     @param  superview          父视图

     @param  view              当前需要添加约束的视图

     @param  toView            关联的视图

     @param  constant          大小值

     @return instancetype      当前视图对象

     */

    - (instancetype)addTopEqualTopConstraintWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView constant:(CGFloat)constant;

    /**

     添加上对下约束属性

     @param  superview          父视图

     @param  view              当前需要添加约束的视图

     @param  toView            关联的视图

     @param  constant          大小值

     @return instancetype      当前视图对象

     */

    - (instancetype)addTopEqualBottomConstraintWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView constant:(CGFloat)constant;

    /**

     添加下对下约束属性

     @param  superview          父视图

     @param  view              当前需要添加约束的视图

     @param  toView            关联的视图

     @param  constant          大小值

     @return instancetype      当前视图对象

     */

    - (instancetype)addBottomEqualBottomConstraintWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView constant:(CGFloat)constant;

    /**

     添加下对上约束属性

     @param  superview          父视图

     @param  view              当前需要添加约束的视图

     @param  toView            关联的视图

     @param  constant          大小值

     @return instancetype      当前视图对象

     */

    - (instancetype)addBottomEqualTopConstraintWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView constant:(CGFloat)constant;

    /**

     添加左对左约束属性

     @param  superview          父视图

     @param  view              当前需要添加约束的视图

     @param  toView            关联的视图

     @param  constant          大小值

     @return instancetype      当前视图对象

     */

    - (instancetype)addLeadingEqualLeadingConstraintWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView constant:(CGFloat)constant;

    /**

     添加左对右约束属性

     @param  superview          父视图

     @param  view              当前需要添加约束的视图

     @param  toView            关联的视图

     @param  constant          大小值

     @return instancetype      当前视图对象

     */

    - (instancetype)addLeadingEqualTrailingConstraintWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView constant:(CGFloat)constant;

    /**

     添加右对右约束属性

     @param  superview          父视图

     @param  view              当前需要添加约束的视图

     @param  toView            关联的视图

     @param  constant          大小值

     @return instancetype      当前视图对象

     */

    - (instancetype)addTrailingEqualTrailingConstraintWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView constant:(CGFloat)constant;

    /**

     添加右对左约束属性

     @param  superview          父视图

     @param  view              当前需要添加约束的视图

     @param  toView            关联的视图

     @param  constant          大小值

     @return instancetype      当前视图对象

     */

    - (instancetype)addTrailingEqualLeadingConstraintWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView constant:(CGFloat)constant;

    /**

     添加宽度对宽度约束属性

     @param  superview          父视图

     @param  view              当前需要添加约束的视图

     @param  toView            关联的视图

     @param  constant          大小值

     @return instancetype      当前视图对象

     */

    - (instancetype)addWidthEqualWidthConstraintWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView constant:(CGFloat)constant;

    /**

     添加高度对高度约束属性

     @param  superview          父视图

     @param  view              当前需要添加约束的视图

     @param  toView            关联的视图

     @param  constant          大小值

     @return instancetype      当前视图对象

     */

    - (instancetype)addHeightEqualHeightConstraintWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView constant:(CGFloat)constant;

    /**

     添加水平居中对水平居中约束属性

     @param  superview          父视图

     @param  view              当前需要添加约束的视图

     @param  toView            关联的视图

     @param  constant          大小值

     @return instancetype      当前视图对象

     */

    - (instancetype)addCenterXEqualCenterXConstraintWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView constant:(CGFloat)constant;

    /**

     添加垂直居中对垂直居中约束属性

     @param  superview          父视图

     @param  view              当前需要添加约束的视图

     @param  toView            关联的视图

     @param  constant          大小值

     @return instancetype      当前视图对象

     */

    - (instancetype)addCenterYEqualCenterYConstraintWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView constant:(CGFloat)constant;

    #pragma mark- ADD SELF

    /**

     添加上对上约束属性

     @param  superview          父视图

     @param  toView            关联的视图

     @param  constant          大小值

     @return instancetype      当前视图对象

     */

    - (instancetype)addTopEqualTopConstraintWithSuperview:(UIView *)superview toView:(UIView *)toView constant:(CGFloat)constant;

    /**

     添加上对下约束属性

     @param  superview          父视图

     @param  toView            关联的视图

     @param  constant          大小值

     @return instancetype      当前视图对象

     */

    - (instancetype)addTopEqualBottomConstraintWithSuperview:(UIView *)superview toView:(UIView *)toView constant:(CGFloat)constant;

    /**

     添加下对下约束属性

     @param  superview          父视图

     @param  toView            关联的视图

     @param  constant          大小值

     @return instancetype      当前视图对象

     */

    - (instancetype)addBottomEqualBottomConstraintWithSuperview:(UIView *)superview toView:(UIView *)toView constant:(CGFloat)constant;

    /**

     添加下对上约束属性

     @param  superview          父视图

     @param  toView            关联的视图

     @param  constant          大小值

     @return instancetype      当前视图对象

     */

    - (instancetype)addBottomEqualTopConstraintWithSuperview:(UIView *)superview toView:(UIView *)toView constant:(CGFloat)constant;

    /**

     添加左对左约束属性

     @param  superview          父视图

     @param  toView            关联的视图

     @param  constant          大小值

     @return instancetype      当前视图对象

     */

    - (instancetype)addLeadingEqualLeadingConstraintWithSuperview:(UIView *)superview toView:(UIView *)toView constant:(CGFloat)constant;

    /**

     添加左对右约束属性

     @param  superview          父视图

     @param  toView            关联的视图

     @param  constant          大小值

     @return instancetype      当前视图对象

     */

    - (instancetype)addLeadingEqualTrailingConstraintWithSuperview:(UIView *)superview toView:(UIView *)toView constant:(CGFloat)constant;

    /**

     添加右对右约束属性

     @param  superview          父视图

     @param  toView            关联的视图

     @param  constant          大小值

     @return instancetype      当前视图对象

     */

    - (instancetype)addTrailingEqualTrailingConstraintWithSuperview:(UIView *)superview toView:(UIView *)toView constant:(CGFloat)constant;

    /**

     添加右对左约束属性

     @param  superview          父视图

     @param  toView            关联的视图

     @param  constant          大小值

     @return instancetype      当前视图对象

     */

    - (instancetype)addTrailingEqualLeadingConstraintWithSuperview:(UIView *)superview toView:(UIView *)toView constant:(CGFloat)constant;

    /**

     添加宽度对宽度约束属性

     @param  superview          父视图

     @param  toView            关联的视图

     @param  constant          大小值

     @return instancetype      当前视图对象

     */

    - (instancetype)addWidthEqualWidthConstraintWithSuperview:(UIView *)superview toView:(UIView *)toView constant:(CGFloat)constant;

    /**

     添加高度对高度约束属性

     @param  superview          父视图

     @param  toView            关联的视图

     @param  constant          大小值

     @return instancetype      当前视图对象

     */

    - (instancetype)addHeightEqualHeightConstraintWithSuperview:(UIView *)superview toView:(UIView *)toView constant:(CGFloat)constant;

    /**

     添加宽度约束属性

     @param  constant          大小值

     @return instancetype      当前视图对象

     */

    - (instancetype)addWidthConstraintWithConstant:(CGFloat)constant;

    /**

     添加高度约束属性

     @param  constant          大小值

     @return instancetype      当前视图对象

     */

    - (instancetype)addHeightConstraintWithConstant:(CGFloat)constant;

    /**

     添加水平居中对水平居中约束属性

     @param  superview          父视图

     @param  toView            关联的视图

     @param  constant          大小值

     @return instancetype      当前视图对象

     */

    - (instancetype)addCenterXEqualCenterXConstraintWithSuperview:(UIView *)superview toView:(UIView *)toView constant:(CGFloat)constant;

    /**

     添加垂直居中对垂直居中约束属性

     @param  superview          父视图

     @param  toView            关联的视图

     @param  constant          大小值

     @return instancetype      当前视图对象

     */

    - (instancetype)addCenterYEqualCenterYConstraintWithSuperview:(UIView *)superview toView:(UIView *)toView constant:(CGFloat)constant;

    #pragma mark- GET

    /**

     获取约束属性的大小值

     @param  superview                         父视图

     @param  view                                   当前添加约束的视图

     @param  viewLayoutAttribute        当前视图添加的约束属性

     @param  toView                               关联的视图

     @param  toViewLayoutAttribute    关联视图的约束属性

     @return CGFloat                              约束属性的大小值

     */

    - (CGFloat)getConstraintConstantWithSuperview:(UIView*)superviewview:(UIView*)viewviewLayoutAttribute:(NSLayoutAttribute)viewLayoutAttributetoView:(nullableUIView*)toViewtoViewLayoutAttribute:(NSLayoutAttribute)toViewLayoutAttribute;

    #pragma mark- GET SELF TO

    /**

     获取上对上约束属性的大小值

     @param  superview      父视图

     @param  view          当前添加约束的视图

     @param  toView        关联的视图

     @return CGFloat        约束属性的大小值

     */

    - (CGFloat)getTopEqualTopConstraintConstantWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView;

    /**

     获取上对下约束属性的大小值

     @param  superview      父视图

     @param  view          当前添加约束的视图

     @param  toView        关联的视图

     @return CGFloat        约束属性的大小值

     */

    - (CGFloat)getTopEqualBottomConstraintConstantWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView;

    /**

     获取下对下约束属性的大小值

     @param  superview      父视图

     @param  view          当前添加约束的视图

     @param  toView        关联的视图

     @return CGFloat        约束属性的大小值

     */

    - (CGFloat)getBottomEqualBottomConstraintConstantWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView;

    /**

     获取下对上约束属性的大小值

     @param  superview      父视图

     @param  view          当前添加约束的视图

     @param  toView        关联的视图

     @return CGFloat        约束属性的大小值

     */

    - (CGFloat)getBottomEqualTopConstraintConstantWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView;

    /**

     获取左对左约束属性的大小值

     @param  superview      父视图

     @param  view          当前添加约束的视图

     @param  toView        关联的视图

     @return CGFloat        约束属性的大小值

     */

    - (CGFloat)getLeadingEqualLeadingConstraintConstantWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView;

    /**

     获取左对右约束属性的大小值

     @param  superview      父视图

     @param  view          当前添加约束的视图

     @param  toView        关联的视图

     @return CGFloat        约束属性的大小值

     */

    - (CGFloat)getLeadingEqualTrailingConstraintConstantWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView;

    /**

     获取右对右约束属性的大小值

     @param  superview      父视图

     @param  view          当前添加约束的视图

     @param  toView        关联的视图

     @return CGFloat        约束属性的大小值

     */

    - (CGFloat)getTrailingEqualTrailingConstraintConstantWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView;

    /**

     获取右对左约束属性的大小值

     @param  superview      父视图

     @param  view          当前添加约束的视图

     @param  toView        关联的视图

     @return CGFloat        约束属性的大小值

     */

    - (CGFloat)getTrailingEqualLeadingConstraintConstantWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView;

    /**

     获取宽度对宽度约束属性的大小值

     @param  superview      父视图

     @param  view          当前添加约束的视图

     @param  toView        关联的视图

     @return CGFloat        约束属性的大小值

     */

    - (CGFloat)getWidthEqualWidthConstraintConstantWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView;

    /**

     获取高度对高度约束属性的大小值

     @param  superview      父视图

     @param  view          当前添加约束的视图

     @param  toView        关联的视图

     @return CGFloat        约束属性的大小值

     */

    - (CGFloat)getHeightEqualHeightConstraintConstantWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView;

    /**

     获取水平居中对水平居中约束属性的大小值

     @param  superview      父视图

     @param  view          当前添加约束的视图

     @param  toView        关联的视图

     @return CGFloat        约束属性的大小值

     */

    - (CGFloat)getCenterXEqualCenterXConstraintConstantWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView;

    /**

     获取垂直居中对垂直居中约束属性的大小值

     @param  superview      父视图

     @param  view          当前添加约束的视图

     @param  toView        关联的视图

     @return CGFloat        约束属性的大小值

     */

    - (CGFloat)getCenterYEqualCenterYConstraintConstantWithSuperview:(UIView *)superview view:(UIView *)view toView:(UIView *)toView;

    #pragma mark- GET SELF

    /**

     获取上对上约束属性的大小值

     @param  superview      父视图

     @param  toView        关联的视图

     @return CGFloat        约束属性的大小值

     */

    - (CGFloat)getTopEqualTopConstraintConstantWithSuperview:(UIView *)superview toView:(UIView *)toView;

    /**

     获取上对下约束属性的大小值

     @param  superview      父视图

     @param  toView        关联的视图

     @return CGFloat        约束属性的大小值

     */

    - (CGFloat)getTopEqualBottomConstraintConstantWithSuperview:(UIView *)superview toView:(UIView *)toView;

    /**

     获取下对下约束属性的大小值

     @param  superview      父视图

     @param  toView        关联的视图

     @return CGFloat        约束属性的大小值

     */

    - (CGFloat)getBottomEqualBottomConstraintConstantWithSuperview:(UIView *)superview toView:(UIView *)toView;

    /**

     获取下对上约束属性的大小值

     @param  superview      父视图

     @param  toView        关联的视图

     @return CGFloat        约束属性的大小值

     */

    - (CGFloat)getBottomEqualTopConstraintConstantWithSuperview:(UIView *)superview toView:(UIView *)toView;

    /**

     获取左对左约束属性的大小值

     @param  superview      父视图

     @param  toView        关联的视图

     @return CGFloat        约束属性的大小值

     */

    - (CGFloat)getLeadingEqualLeadingConstraintConstantWithSuperview:(UIView *)superview toView:(UIView *)toView;

    /**

     获取左对右约束属性的大小值

     @param  superview      父视图

     @param  toView        关联的视图

     @return CGFloat        约束属性的大小值

     */

    - (CGFloat)getLeadingEqualTrailingConstraintConstantWithSuperview:(UIView *)superview toView:(UIView *)toView;

    /**

     获取右对右约束属性的大小值

     @param  superview      父视图

     @param  toView        关联的视图

     @return CGFloat        约束属性的大小值

     */

    - (CGFloat)getTrailingEqualTrailingConstraintConstantWithSuperview:(UIView *)superview toView:(UIView *)toView;

    /**

     获取右对左约束属性的大小值

     @param  superview      父视图

     @param  toView        关联的视图

     @return CGFloat        约束属性的大小值

     */

    - (CGFloat)getTrailingEqualLeadingConstraintConstantWithSuperview:(UIView *)superview toView:(UIView *)toView;

    /**

     获取宽度对宽度约束属性的大小值

     @param  superview      父视图

     @param  toView        关联的视图

     @return CGFloat        约束属性的大小值

     */

    - (CGFloat)getWidthEqualWidthConstraintConstantWithSuperview:(UIView *)superview toView:(UIView *)toView;

    /**

     获取高度对高度约束属性的大小值

     @param  superview      父视图

     @param  toView        关联的视图

     @return CGFloat        约束属性的大小值

     */

    - (CGFloat)getHeightEqualHeightConstraintConstantWithSuperview:(UIView *)superview toView:(UIView *)toView;

    /**

     获取宽度约束属性的大小值

     @return CGFloat        约束属性的大小值

     */

    - (CGFloat)getWidthConstraintConstant;

    /**

     获取高度约束属性的大小值

     @return CGFloat        约束属性的大小值

     */

    - (CGFloat)getHeightConstraintConstant;

    /**

     获取水平居中对水平居中约束属性的大小值

     @param  superview      父视图

     @param  toView        关联的视图

     @return CGFloat        约束属性的大小值

     */

    - (CGFloat)getCenterXEqualCenterXConstraintConstantWithSuperview:(UIView *)superview toView:(UIView *)toView;

    /**

     获取垂直居中对垂直居中约束属性的大小值

     @param  superview      父视图

     @param  toView        关联的视图

     @return CGFloat        约束属性的大小值

     */

    - (CGFloat)getCenterYEqualCenterYConstraintConstantWithSuperview:(UIView *)superview toView:(UIView *)toView;

    @end

    UIViewController :

    - (void)viewDidLoad {

        [super viewDidLoad];

        // Do any additional setup after loading the view, typically from a nib.

        UIView *view1 = [[UIView alloc] init];

        view1.backgroundColor = [UIColor redColor];

        [self.view addSubview:view1];

        [[[[view1 addHeightConstraintWithConstant:50]  addLeadingEqualLeadingConstraintWithSuperview:self.view toView:self.view constant:50]  addTrailingEqualTrailingConstraintWithSuperview:self.view toView:self.view constant:-50]  addTopEqualTopConstraintWithSuperview:self.view toView:self.view constant:50];

        [[self.constraintView addWidthConstraintWithConstant:ZLScaleValue(20)] addHeightConstraintWithConstant:ZLScaleValue(20)];

        [view1 removeTopEqualTopConstraintWithSuperview:self.view toView:self.view];

        [view1 addBottomEqualTopConstraintWithSuperview:self.view toView:self.constraintView constant:0];

        [view1 addBottomEqualTopConstraintWithSuperview:self.view toView:self.constraintView constant:0];

        UIView*view2 = [[UIView alloc] init];

        view2.backgroundColor = [UIColor orangeColor];

        [self.view addSubview:view2];

        [view2 addCenterXEqualCenterXConstraintWithSuperview:self.view toView:view1 constant:0];

        [view2 addCenterYEqualCenterYConstraintWithSuperview:self.view toView:view1 constant:0];

        [[view2 addWidthConstraintWithConstant:50] addHeightConstraintWithConstant:50];

        [view2 addCenterXEqualCenterXConstraintWithSuperview:self.view toView:self.constraintView constant:0];

        [view2 addCenterYEqualCenterYConstraintWithSuperview:self.view toView:view1 constant:0];

        NSLog(@"%f", ZLScaleValue(20));

    }

    支持CocoaPods : pod 'ZLConstraint'

    UIView的自动布局约束,NSAutoLayout自动布局代码的封装,XIB自动布局适配

    UIView的自动布局约束,NSAutoLayout自动布局代码的封装,XIB自动布局适配

    相关文章

      网友评论

          本文标题:基于UIView的自动布局

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