由于众多原因,有些开发者(像我一样)更喜欢以编程方式创建 UI。我用 storyboards 来处理 segues 和用户场景路径。但我把 UIViewControllers 留空,并且我不使用 xibs。
当你以编程方式创建自适应 UI 时,由于大量的自动布局创建调用,视图(或视图控制器)的代码会变得难以阅读。
VBAutolayout 是一个库,它使自动布局的编程创建变得舒适、可读且代码最简化。
视图布局以拥有特殊 VBAutolayout 格式的字典形式描述。仅针对布局字典中包含的
布局字典格式
@{VBAutolayoutAttribute: <1>,
VBAutolayoutAttribute: <2>,
VBAutolayoutAttribute: <3>
}
<1> = <const>
<2> = @{VBAutolayoutItem: <item>,
VBAutolayoutConstant: <const>}
<3> = @[<1>, <2>, ...]
<item>
是约束中的视图2。如果没有指定 <item>
,则使用父视图,并将约束解释为对视图容器的约束。
<const>
是一个字符串,其格式与用于 Visual Format Constraints 创建的格式相同
<const> = <relation><constant>@<priority>, ex. 10, ==10, >=10, <=10, 10@999, >=10@999, etc.
<relation> = 1) <, <= for <=
2) >, >= for >=
3) =, == for ==
可以使用变体 <3>
将多个约束组合为单个属性。
示例
VBAutolayoutAttributeTop: @{VBAutolayoutItem: __someView__,`
VBAutolayoutConstant: @">=10@999"}`
VBAutolayoutAttributeLeading: @{VBAutolayoutItem: __someView__}
VBAutolayoutAttributeLeading: @"0"
使用 CocoaPods
pod 'VBAutolayout'
或
将 VBAutolayout 目录拖入您的项目。
您可以将 "VBAutolayout.h" 导入预编译头文件。
VBAutolayout 遵循 MIT 许可协议。有关更多信息,请参阅 LICENSE 文件。