对UIView、NSView、UIViewController和NSArray进行分类,使自动布局(更具)易读性和简洁性。适用于iOS和OS X。
Lyt 允许你表达约束的意图。像这样写:
[view lyt_centerInParent];
而不是这样:
NSLayoutConstraint *centerXConstraint = [NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeCenterX relatedBy:NSLayoutRelationEqual toItem:view.superview attribute:NSLayoutAttributeCenterX multiplier:1.0 constant:0];
[view.superview addConstraint:centerXConstraint];
NSLayoutConstraint *centerYConstraint = [NSLayoutConstraint constraintWithItem:view attribute:NSLayoutAttributeCenterY relatedBy:NSLayoutRelationEqual toItem:view2 attribute:NSLayoutAttributeCenterY multiplier:1.0 constant:0];
[view.superview addConstraint:centerYConstraint];
或是这样:
[@[userField, passwordField, repeatPasswordField] lyt_distributeYWithSpacing:10];
而不是这样:
NSDictionary *views = NSDictionaryOfVariableBindings(userField, passwordField, repeatPasswordField);
NSDictionary *metrics = @{@"spacing" : @(10)};
NSArray *constraints = [NSLayoutConstraint constraintsWithVisualFormat:@"V:[userField]-spacing-[passwordField]-spacing-[repeatPasswordField]" options:kNilOptions metrics:metrics views:views];
[view.superview addConstraints:constraints];
输入lyt_
然后所需的布局操作(例如,center
)来查看可用的选项。
Lyt提供了数百个便利方法。当前的系列包括
lyt_align*
lyt_center*
lyt_place*
lyt_distribute*
lyt_set*
lyt_match*
每个Lyt方法返回相应的约束或约束集,您可以对它们进行修改或从视图层次结构中删除。
NSLayoutConstraint *leftConstraint = [view lyt_alignLeftToParent];
// Later...
leftConstraint.constant = 10;
此外,每个方法都有一个等效方法,它不会将约束添加到视图层次结构中,这对于动态自动布局或设置优先级(因为必须在向视图层次结构添加约束之前设置优先级)非常有用。例如
_labelLeftConstraint = [_label lyt_constraintByAligningLeftToParent];
_labelLeftConstraint.priority = UILayoutPriorityDefaultLow;
// Later...
[self.view addConstraint:_labelLeftConstraint];
Lyt 为 UIViewController 提供了一个类别以利用布局向导(仅限iOS)。
[viewController lyt_alignTopGuideAndView:titleView];
使用 CocoaPods
pod 'Lyt', '~> 0.6'
或者,如果您手动进行,添加来自 Lyt 目录的文件。
版权所有 2014 Robot Media SL
根据Apache许可证2.0版本(“许可证”);除非为本许可证附录所述,或者书面同意,否则不得使用此文件。您可以在以下位置获得许可证副本:
https://apache.ac.cn/licenses/LICENSE-2.0
除非根据适用法律要求或书面同意,否则在许可证下分发的软件按“原样”提供,不提供任何明确的或隐含的保证或条件。请参阅许可证以了解规管许可的使用权和限制。