| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- //
- // UIView+JKConstraint.h
- // Constraint
- //
- // Created by Jack on 2018/12/10.
- // Copyright © 2018年 Jack Template. All rights reserved.
- //
- #import <UIKit/UIKit.h>
- @interface RAConstraint : NSObject
- @property (nonatomic,readonly,copy) RAConstraint *(^ra_offset)(CGFloat offset);
- @property (nonatomic,readonly,copy) RAConstraint *(^ra_lessThanOrEqualTo)(RAConstraint *constraint);
- @property (nonatomic,readonly,copy) RAConstraint *(^ra_equalTo)(RAConstraint *constraint);
- @property (nonatomic,readonly,copy) RAConstraint *(^ra_greaterThanOrEqualTo)(RAConstraint *constraint);
- @property (nonatomic,readonly,copy) RAConstraint *(^ra_priority)(UILayoutPriority priority);
- @property (nonatomic,readonly,copy) RAConstraint *(^ra_append)(NSString *identifier);
- @property (nonatomic,copy) RAConstraint *(^ra_size_greaterThanOrEqualTo)(CGFloat size);
- @property (nonatomic,copy) RAConstraint *(^ra_size_lessThanOrEqualTo)(CGFloat size);
- @property (nonatomic,readonly,copy) void (^ra_modify)(CGFloat constant);
- @end
- #pragma mark - Maker
- @interface RAConstraintMaker : NSObject
- @property (nonatomic,strong,readonly) RAConstraint *left;
- @property (nonatomic,strong,readonly) RAConstraint *top;
- @property (nonatomic,strong,readonly) RAConstraint *right;
- @property (nonatomic,strong,readonly) RAConstraint *bottom;
- @property (nonatomic,strong,readonly) RAConstraint *centerX;
- @property (nonatomic,strong,readonly) RAConstraint *centerY;
- @property (nonatomic,strong,readonly) RAConstraint *baseLine;
- @property (nonatomic,strong,readonly) RAConstraint *width;
- @property (nonatomic,strong,readonly) RAConstraint *height;
- @property (nonatomic,strong,readonly) RAConstraint *ra_safeAreaLeft API_AVAILABLE(ios(11.0),tvos(11.0));
- @property (nonatomic,strong,readonly) RAConstraint *ra_safeAreaTop API_AVAILABLE(ios(11.0),tvos(11.0));
- @property (nonatomic,strong,readonly) RAConstraint *ra_safeAreaRight API_AVAILABLE(ios(11.0),tvos(11.0));
- @property (nonatomic,strong,readonly) RAConstraint *ra_safeAreaBottom API_AVAILABLE(ios(11.0),tvos(11.0));
- // 抗拉伸
- @property (nonatomic,assign) UILayoutPriority ra_horizontalHuggingPriority;
- @property (nonatomic,assign) UILayoutPriority ra_verticalHuggingPriority;
- // 抗压缩
- @property (nonatomic,assign) UILayoutPriority ra_horizontalCompressionResistancePriority;
- @property (nonatomic,assign) UILayoutPriority ra_verticalCompressionResistancePriority;
- @end
- #pragma mark - UIView
- @interface UIView (RAConstraint)
- @property (nonatomic,strong,readonly) RAConstraint *left;
- @property (nonatomic,strong,readonly) RAConstraint *top;
- @property (nonatomic,strong,readonly) RAConstraint *right;
- @property (nonatomic,strong,readonly) RAConstraint *bottom;
- @property (nonatomic,strong,readonly) RAConstraint *centerX;
- @property (nonatomic,strong,readonly) RAConstraint *centerY;
- @property (nonatomic,strong,readonly) RAConstraint *baseLine;
- @property (nonatomic,strong,readonly) RAConstraint *width;
- @property (nonatomic,strong,readonly) RAConstraint *height;
- @property (nonatomic,strong,readonly) RAConstraint *ra_safeAreaLeft API_AVAILABLE(ios(11.0),tvos(11.0));
- @property (nonatomic,strong,readonly) RAConstraint *ra_safeAreaTop API_AVAILABLE(ios(11.0),tvos(11.0));
- @property (nonatomic,strong,readonly) RAConstraint *ra_safeAreaRight API_AVAILABLE(ios(11.0),tvos(11.0));
- @property (nonatomic,strong,readonly) RAConstraint *ra_safeAreaBottom API_AVAILABLE(ios(11.0),tvos(11.0));
- @property (nonatomic,copy,readonly) void (^ra_modifyConstraint)(NSString *identifier, CGFloat constant);
- - (void)ra_applyConstraints:(void(^)(RAConstraintMaker *maker))apply;
- /**
- * it will remove all of its constraints before installing them again.
- */
- - (void)ra_remakeConstraints:(void(^)(RAConstraintMaker *maker))remake;
- @end
- #pragma mark - View Controller
- @interface UIViewController (RAConstraint)
- @property (nonatomic,strong,readonly) RAConstraint *ra_topLayoutGuid;
- @property (nonatomic,strong,readonly) RAConstraint *ra_topLayoutGuidTop;
- @property (nonatomic,strong,readonly) RAConstraint *ra_topLayoutGuidBottom;
- @property (nonatomic,strong,readonly) RAConstraint *ra_bottomLayoutGuid;
- @property (nonatomic,strong,readonly) RAConstraint *ra_bottomLayoutGuidTop;
- @property (nonatomic,strong,readonly) RAConstraint *ra_bottomLayoutGuidBottom;
- @end
|