NSLayoutConstraint(CompactConstraint)

@interface NSLayoutConstraint (CompactConstraint)

NSLayoutConstraint (CompactConstraint), a class category from Marco Arment’s CompactConstraint library, is integrated with Cephei. CompactConstraint provides an Auto Layout grammar and methods that are easier to use and understand than UIKit’s built in functions for programmatically adding constraints.

Refer to its readme to learn how to use it. There are two changes to note: most importantly, the methods have an hb_ prefix, and two methods that are marked as deprecated in the original project have been removed.

CompactConstraint is licensed under the MIT License.

  • Undocumented

    Declaration

    Objective-C

    + (instancetype)hb_compactConstraint:(NSString *)relationship metrics:(NSDictionary <NSString *, NSNumber *> *)metrics views:(NSDictionary <NSString *, UIView *> *)views self:(id)selfView;

    Swift

    class func hb_compactConstraint(_ relationship: String!, metrics: [String : NSNumber]!, views: [String : UIView]!, self selfView: Any!) -> Self!
  • Undocumented

    Declaration

    Objective-C

    + (NSArray <NSLayoutConstraint *> *)hb_compactConstraints:(NSArray <NSString *> *)relationshipStrings metrics:(NSDictionary <NSString *, NSNumber *> *)metrics views:(NSDictionary <NSString *, UIView *> *)views self:(id)selfView;

    Swift

    class func hb_compactConstraints(_ relationshipStrings: [String]!, metrics: [String : NSNumber]!, views: [String : UIView]!, self selfView: Any!) -> [NSLayoutConstraint]!
  • And a convenient shortcut for creating constraints with the visualFormat string as the identifier

    Declaration

    Objective-C

    + (NSArray<NSLayoutConstraint *> *)
    hb_identifiedConstraintsWithVisualFormat:(NSString *)format
                                     options:(NSLayoutFormatOptions)opts
                                     metrics:
                                         (NSDictionary<NSString *, NSNumber *> *)
                                             metrics
                                       views:(NSDictionary<NSString *, UIView *> *)
                                                 views;

    Swift

    class func hb_identifiedConstraints(withVisualFormat format: String!, options opts: NSLayoutFormatOptions = [], metrics: [String : NSNumber]!, views: [String : UIView]!) -> [NSLayoutConstraint]!