LookinAutoLayoutConstraint.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. //
  2. // LookinAutoLayoutConstraint.h
  3. // Lookin
  4. //
  5. // Created by Li Kai on 2019/9/28.
  6. // https://lookin.work
  7. //
  8. #import "LookinDefines.h"
  9. @class LookinObject;
  10. typedef NS_ENUM(NSInteger, LookinConstraintItemType) {
  11. LookinConstraintItemTypeUnknown,
  12. LookinConstraintItemTypeNil,
  13. LookinConstraintItemTypeView,
  14. LookinConstraintItemTypeSelf,
  15. LookinConstraintItemTypeSuper,
  16. LookinConstraintItemTypeLayoutGuide
  17. };
  18. @interface LookinAutoLayoutConstraint : NSObject <NSSecureCoding>
  19. #if TARGET_OS_IPHONE
  20. + (instancetype)instanceFromNSConstraint:(NSLayoutConstraint *)constraint isEffective:(BOOL)isEffective firstItemType:(LookinConstraintItemType)firstItemType secondItemType:(LookinConstraintItemType)secondItemType;
  21. #endif
  22. @property(nonatomic, assign) BOOL effective;
  23. @property(nonatomic, assign) BOOL active;
  24. @property(nonatomic, assign) BOOL shouldBeArchived;
  25. @property(nonatomic, strong) LookinObject *firstItem;
  26. @property(nonatomic, assign) LookinConstraintItemType firstItemType;
  27. @property(nonatomic, assign) NSLayoutAttribute firstAttribute;
  28. @property(nonatomic, assign) NSLayoutRelation relation;
  29. @property(nonatomic, strong) LookinObject *secondItem;
  30. @property(nonatomic, assign) LookinConstraintItemType secondItemType;
  31. @property(nonatomic, assign) NSLayoutAttribute secondAttribute;
  32. @property(nonatomic, assign) CGFloat multiplier;
  33. @property(nonatomic, assign) CGFloat constant;
  34. @property(nonatomic, assign) CGFloat priority;
  35. @property(nonatomic, copy) NSString *identifier;
  36. + (NSString *)descriptionWithItemObject:(LookinObject *)object type:(LookinConstraintItemType)type detailed:(BOOL)detailed;
  37. + (NSString *)descriptionWithAttribute:(NSLayoutAttribute)attribute;
  38. + (NSString *)symbolWithRelation:(NSLayoutRelation)relation;
  39. + (NSString *)descriptionWithRelation:(NSLayoutRelation)relation;
  40. @end