一组宏,用于与自动布局一起使用。从这
UIView *redView = [[UIView alloc]init];
redView.translatesAutoresizingMaskIntoConstraints = NO;
redView.backgroundColor = [UIColor redColor];
[self.view addSubview:redView];
[self.view addConstraints:@[
[NSLayoutConstraint
constraintWithItem:redView
attribute:NSLayoutAttributeCenterX
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeCenterX
multiplier:1.0
constant:0],
[NSLayoutConstraint
constraintWithItem:redView
attribute:NSLayoutAttributeCenterY
relatedBy:NSLayoutRelationEqual
toItem:self.view
attribute:NSLayoutAttributeCenterY
multiplier:1.0
constant:0],
[NSLayoutConstraint
constraintWithItem:redView
attribute:NSLayoutAttributeWidth
relatedBy:NSLayoutRelationEqual
toItem:nil
attribute:NSLayoutAttributeNotAnAttribute
multiplier:1.0
constant:300],
[NSLayoutConstraint
constraintWithItem:redView
attribute:NSLayoutAttributeHeight
relatedBy:NSLayoutRelationEqual
toItem:redView
attribute:NSLayoutAttributeWidth
multiplier:1.0
constant:0],
]];
到这
UIView *redView = [[UIView alloc]init];
redView.translatesAutoresizingMaskIntoConstraints = NO;
redView.backgroundColor = [UIColor redColor];
[self.view addSubview:redView];
[self.view addConstraints:@[
NSConstraintMakeCenter(redView, self.view),
NSConstraintMakeWidthAndHeightEqual(redView, 300)
]];
简单地将自动布局变得不那么冗长。一些宏是为了在与数组添加约束时使用而制作的,例如在示例中,需要两个约束来居中视图中的项目。因此,NSConstraintMakeCenter 宏仅是为了传递到数组中。
首选方法是使用 CocoaPods,只需将 pod 'TJLAutoLayoutMacros', '1.0.0'
添加到您的 podfile。如果您不想使用 CocoaPods,只需从源文件夹中获取文件,将它们拖入您的项目,然后 #import "TJLAutoLayoutMacros.h"
并开始节省代码行数!
如果您使用了 TJLAutoLayoutMacros 并喜欢它,随时通知我,[email protected]。如果您有任何问题或希望进行改进,请提交一个拉取请求。
MIT 许可协议(MIT)版权所有 (c) 2013 Terry Lewis II
特此授予任何人获取本软件及其相关文档文件(以下简称“软件”)的副本的权限,不受任何限制地使用该软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本的权限,并允许向软件提供副本的个人以这样做,但受以下条件约束:
应将上述版权声明和本许可协议包括在该软件的所有副本或实质性部分中。
软件按“原样”提供,不提供任何明示或暗示的保证,包括但不限于对适销性、针对特定目的的适合性和非侵权的保证。在任何情况下,作者或版权持有者均不对任何索赔、损害或其他责任负责,无论此类索赔、损害或其他责任是根据合同、侵权还是其他方式,是否与本软件或其他软件的使用或其他交易有关。