LayItOut 1.0.0

LayItOut 1.0.0

ZZYCN维护。



LayItOut 1.0.0

  • 作者
  • ZZYCN

LayItOut

任何视图层次结构的布局都可以定义为一组线性方程系统,该系统只有唯一解。LayItOut 可让您轻松声明方程。

系统要求

  • iOS 9.0+ / tvOS 9.0+ / macOS 10.11+
  • Xcode 9.3+
  • Swift 4.1+

使用方法

  • 示例

LayItOut 的方程

//
purpleView.area.left == superView.marginedArea.left
//
purpleView.area.top == superView.marginedArea.top + 60
//
purpleView.area.right == orangeView.area.left - 20
//
orangeView.area.top == superView.marginedArea.top + 60
//
orangeView.area.right == superView.marginedArea.right
//
orangeView.area.bottom == superView.marginedArea.bottom - 60
//
purpleView.area.bottom == superView.marginedArea.bottom - 60
//
purpleView.area.width == orangeView.area.width * 0.5

我的首选方式

// ① & ④
purpleView.area.upperLeft == superView.marginedArea.upperLeft + CGPoint(x: 0, y: 60)
// ② & new ⑤
purpleView.area.upperRight == orangeView.area.upperLeft - CGPoint(x: 20, y: 0)
// ③ & ⑦
orangeView.area.lowerRight == superView.marginedArea.lowerRight - CGPoint(x: 0, y: 60)
//
purpleView.area.bottom == superView.marginedArea.bottom - 60
//
purpleView.area.width == orangeView.area.width * 0.5

iOS 中的坐标系原点位于绘图区域的左上角,正值向下和向右延伸。

  • 视图区域

区域 描述 注意
area: 面积 视图的框架
marginedArea: 边界面积 视图的边距 仅限 iOS、tvOS
readableArea: 读取区域 视图中可读宽度的区域 仅限 iOS、tvOS
safeArea:SArea 不会被栏和其他内容遮挡的区域 仅限 iOS、tvOS
  • 区域的项目

项目 注意
宽度
高度
顶部
左边
底部
右边
中心X
中心Y
前导
尾随
第一基线 仅在区域
最后一基线 仅在区域
大小 widthheight组成
中心 centerXcenterY组成
左上 lefttop组成
右上 righttop组成
左下 leftbottom组成
右下 rightbottom组成
原点 upperLeft在iOS、tvOS中,lowerLeft在macOS中
  • 优先级

通过--指定优先级

view.area.width == 100 -- .defaultLow
  • 更多

基于NSLayoutAnchor进行布局。请参阅自动布局指南 NSLayoutAnchor以获取详细信息。

安装

要使用CocoaPods将LayItOut集成到Xcode项目中

pod 'LayItOut'

许可证

LayItOut采用MIT许可证发布。请参阅LICENSE获取详细信息。