All Versions
Latest Version
Avg Release Cycle
128 days
Latest Release
2465 days ago

Changelog History
Page 2

  • v0.5.2 Changes

    ⚠ - Fixed compilation warning with Shorthand view Additions

  • v0.5.1 Changes

    🛠 - Fixed compilation error when using objective-c++ (nickynick)

  • v0.5.0 Changes

    ⚡️ - Fixed bug in mas_updateConstraints (Rolken)

    Was not checking that the constraint relation was equivalent

    - Added mas_remakeConstraints (nickynick)

    ⚡️ Similar to mas_updateConstraints however instead of trying to update existing constraints it Removes all constraints previously defined and installed for the view, allowing you to provide replacements without hassle.

    - Added Autoboxing for scalar/struct attribute values (nickynick)

    Autoboxing allows you to write equality relations and offsets by passing primitive values and structs;
    make.size.mas_equalTo(CGSizeMake(50, 100));
    make.edges.mas_equalTo(UIEdgeInsetsMake(10, 0, 10, 0));
    make.left.mas_equalTo(view).mas_offset(UIEdgeInsetsMake(10, 0, 10, 0));

    0️⃣ by default these autoboxing macros are prefix with mas_ If you want the unprefixed version you need to add MAS_SHORTHAND_GLOBALS before importing Masonry.h (ie in your Prefix.pch)

    - Added ability to chain view attributes

    Composites are great for defining multiple attributes at once. The following example makes top, left, bottom, right equal to superview.


    However if only three of the sides are equal to superview then we need to repeat quite a bit of code

    // top needs to be equal to `otherView`;

    This change makes it possible to chain view attributes to improve readability


  • v0.4.0 Changes

    🛠 - Fixed Xcode auto-complete support (nickynick)

    Breaking Changes

    If you are holding onto any instances of masonry constraints ie

    // in public/private interface
    @property (nonatomic, strong) id<MASConstraint> topConstraint;

    You will need to change this to

    // in public/private interface
    @property (nonatomic, strong) MASConstraint *topConstraint;

    👀 Instead of using protocols Masonry now uses an abstract base class for constraints in order to get Xcode auto-complete support see

  • v0.3.2 Changes

    👍 - Added support for Mac OSX animator proxy (pfandrade)
    - Added setter methods for NSLayoutConstraint constant proxies like offset, centerOffset, insets, sizeOffset.

    ⚡️ now you can update these values using more natural syntax

    self.edgesConstraint.insets(UIEdgeInsetsMake(20, 10, 15, 5));

    can now be written as:

    self.edgesConstraint.insets = UIEdgeInsetsMake(20, 10, 15, 5);
  • v0.3.1 Changes

    - Added way to specify the same set of constraints to multiple views in an array (danielrhammond)
    [@[view1, view2, view3] mas_makeConstraints:^(MASConstraintMaker *make) {
  • v0.3.0 Changes

    - Added - (NSArray *)mas_updateConstraints:(void(^)(MASConstraintMaker *))block

    ⚡️ which will update existing constraints if possible, otherwise it will add them. This makes it easier to use Masonry within the UIView - (void)updateConstraints method which is the recommended place for adding/updating constraints by apple.

    ⚡️ - Updated examples for iOS7, added a few new examples.
    - Added -isEqual: and -hash to MASViewAttribute [CraigSiemens].