ConstraintFormatter 1.1.0

ConstraintFormatter 1.1.0

测试已测试
Lang语言 Obj-CObjective C
许可证 MIT
发布最后发布2015年2月

Gabriel Reis维护。



  • 作者:
  • Gabriel Reis

ConstraintFormatter是一个库,用于统一Auto Layout中的可视约束和基于属性的约束。

基于属性编写NSLayoutConstraints非常繁琐,而使用此库,您可以轻松地编写并混合它们与可视约束。如下所示

#import "ConstraintFormatter.h"

...

id views = @{@"view1": view1, @"view2": view2};
id metrics = @{@"margin": @10};
id formats = @[@"view1.bottom == view2.top + margin",
               @"view1.centerX == superview.centerX",
               @"H:|-margin-[view1]-margin-|",
               @"H:|[view2]|"];

[view addConstraintsWithFormats:formats
                          views:views
                        metrics:metrics];

如你所见,视图和指标被用来定义约束。另外,值得注意的是,库为您在所有视图上调用setTranslatesAutoresizingMaskIntoConstraints:NO。

属性

标准

  • left
  • right
  • top
  • bottom
  • width
  • height
  • centerX
  • centerY
  • baseline
  • leading
  • trailing

特殊

center

centerX 和 centerY 的快捷方式

@"view2.center == view1.center"

为了定义centerX 和 centerY 的偏移量,请在括号内提供它们

@"view2.center == view1.center(40, 40)"

edges

top, left, bottom, right 的快捷方式

@"view1.edges == superview.edges"

为了定义top, left, bottom, right的内边距,请在括号内提供它们

@"view1.edges == superview.edges(25, 35, 25, 35)"

size

width 和 height 的快捷方式

@"view1.size == view2.size"

为了指定具有偏移量的width 和 height的值,请在括号内提供它们

@"view1.size == view2.size(50, 50)"

为了指定width 和 height的值,请在括号内提供它们

@"view1.size == (50, 50)"

可选

如果约束在两个视图中使用相同的属性,则指定属性是可选的

view1.centerX == view2.centerX
// is the same as
view1.centerX == view2

关系

  • ==
  • >=
  • <=

指定两个视图之间的关系

@"view1.centerX == view2.centerX"

指定一个视图的属性的值

@"view1.width >= 30"

常量

  • +
  • -
  • *
  • /

使用+或-来定义常量

@"view1.centerX == view2.centerX + 10"
@"view1.centerY == view2.centerY - 10"

使用*来定义乘数

@"view1.width == view2.width * 0.5"

您还可以使用/来定义乘数

@"view1.width == view2.width / 2"

您可以混合常量和乘数

@"view1.width == view2.width * 0.5 - 10"

superview

如果您想引用所有约束都将添加的视图,请直接使用 'superview'

@"view1.centerX == superview.centerX"

优先级

限制的优先级可以设置为以下选项

@"view1.width@750 == view2.width"

如何贡献

在仓库进行Fork和Clone,然后

gem install cocoapods
cd Tests
pod install
open ConstraintFormatter.xcworkspace

要运行测试,只需按Command+U或进入菜单产品 -> 测试。

要运行示例应用,只需按Command+R或产品 -> 运行。

要编辑库文件,只需打开项目导航器,并在Pods -> 开发Pods -> ConstraintFormatter下编辑文件。