112 lines
4.8 KiB
Objective-C
112 lines
4.8 KiB
Objective-C
//
|
|
// UIView+MASAdditions.h
|
|
// Masonry
|
|
//
|
|
// Created by Jonas Budelmann on 20/07/13.
|
|
// Copyright (c) 2013 cloudling. All rights reserved.
|
|
//
|
|
|
|
#import "MASUtilities.h"
|
|
#import "MASConstraintMaker.h"
|
|
#import "MASViewAttribute.h"
|
|
|
|
/**
|
|
* Provides constraint maker block
|
|
* and convience methods for creating MASViewAttribute which are view + NSLayoutAttribute pairs
|
|
*/
|
|
@interface MAS_VIEW (MASAdditions)
|
|
|
|
/**
|
|
* following properties return a new MASViewAttribute with current view and appropriate NSLayoutAttribute
|
|
*/
|
|
@property (nonatomic, strong, readonly) MASViewAttribute *mas_left;
|
|
@property (nonatomic, strong, readonly) MASViewAttribute *mas_top;
|
|
@property (nonatomic, strong, readonly) MASViewAttribute *mas_right;
|
|
@property (nonatomic, strong, readonly) MASViewAttribute *mas_bottom;
|
|
@property (nonatomic, strong, readonly) MASViewAttribute *mas_leading;
|
|
@property (nonatomic, strong, readonly) MASViewAttribute *mas_trailing;
|
|
@property (nonatomic, strong, readonly) MASViewAttribute *mas_width;
|
|
@property (nonatomic, strong, readonly) MASViewAttribute *mas_height;
|
|
@property (nonatomic, strong, readonly) MASViewAttribute *mas_centerX;
|
|
@property (nonatomic, strong, readonly) MASViewAttribute *mas_centerY;
|
|
@property (nonatomic, strong, readonly) MASViewAttribute *mas_baseline;
|
|
@property (nonatomic, strong, readonly) MASViewAttribute *(^mas_attribute)(NSLayoutAttribute attr);
|
|
|
|
#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000) || (__MAC_OS_X_VERSION_MIN_REQUIRED >= 101100)
|
|
|
|
@property (nonatomic, strong, readonly) MASViewAttribute *mas_firstBaseline;
|
|
@property (nonatomic, strong, readonly) MASViewAttribute *mas_lastBaseline;
|
|
|
|
#endif
|
|
|
|
#if (__IPHONE_OS_VERSION_MIN_REQUIRED >= 80000) || (__TV_OS_VERSION_MIN_REQUIRED >= 9000)
|
|
|
|
@property (nonatomic, strong, readonly) MASViewAttribute *mas_leftMargin;
|
|
@property (nonatomic, strong, readonly) MASViewAttribute *mas_rightMargin;
|
|
@property (nonatomic, strong, readonly) MASViewAttribute *mas_topMargin;
|
|
@property (nonatomic, strong, readonly) MASViewAttribute *mas_bottomMargin;
|
|
@property (nonatomic, strong, readonly) MASViewAttribute *mas_leadingMargin;
|
|
@property (nonatomic, strong, readonly) MASViewAttribute *mas_trailingMargin;
|
|
@property (nonatomic, strong, readonly) MASViewAttribute *mas_centerXWithinMargins;
|
|
@property (nonatomic, strong, readonly) MASViewAttribute *mas_centerYWithinMargins;
|
|
|
|
#endif
|
|
|
|
#if (__IPHONE_OS_VERSION_MAX_ALLOWED >= 110000) || (__TV_OS_VERSION_MAX_ALLOWED >= 110000)
|
|
|
|
@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuide API_AVAILABLE(ios(11.0),tvos(11.0));
|
|
@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideTop API_AVAILABLE(ios(11.0),tvos(11.0));
|
|
@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideBottom API_AVAILABLE(ios(11.0),tvos(11.0));
|
|
@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideLeft API_AVAILABLE(ios(11.0),tvos(11.0));
|
|
@property (nonatomic, strong, readonly) MASViewAttribute *mas_safeAreaLayoutGuideRight API_AVAILABLE(ios(11.0),tvos(11.0));
|
|
|
|
#endif
|
|
|
|
/**
|
|
* a key to associate with this view
|
|
*/
|
|
@property (nonatomic, strong) id mas_key;
|
|
|
|
/**
|
|
* Finds the closest common superview between this view and another view
|
|
*
|
|
* @param view other view
|
|
*
|
|
* @return returns nil if common superview could not be found
|
|
*/
|
|
- (instancetype)mas_closestCommonSuperview:(MAS_VIEW *)view;
|
|
|
|
/**
|
|
* Creates a MASConstraintMaker with the callee view.
|
|
* Any constraints defined are added to the view or the appropriate superview once the block has finished executing
|
|
*
|
|
* @param block scope within which you can build up the constraints which you wish to apply to the view.
|
|
*
|
|
* @return Array of created MASConstraints
|
|
*/
|
|
- (NSArray *)mas_makeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *make))block;
|
|
|
|
/**
|
|
* Creates a MASConstraintMaker with the callee view.
|
|
* Any constraints defined are added to the view or the appropriate superview once the block has finished executing.
|
|
* If an existing constraint exists then it will be updated instead.
|
|
*
|
|
* @param block scope within which you can build up the constraints which you wish to apply to the view.
|
|
*
|
|
* @return Array of created/updated MASConstraints
|
|
*/
|
|
- (NSArray *)mas_updateConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *make))block;
|
|
|
|
/**
|
|
* Creates a MASConstraintMaker with the callee view.
|
|
* Any constraints defined are added to the view or the appropriate superview once the block has finished executing.
|
|
* All constraints previously installed for the view will be removed.
|
|
*
|
|
* @param block scope within which you can build up the constraints which you wish to apply to the view.
|
|
*
|
|
* @return Array of created/updated MASConstraints
|
|
*/
|
|
- (NSArray *)mas_remakeConstraints:(void(NS_NOESCAPE ^)(MASConstraintMaker *make))block;
|
|
|
|
@end
|