文稿 3.0.3

文稿 3.0.3

测试已测试
语言语言 SwiftSwift
许可 MIT
发布最新发布2017年4月
SwiftSwift版本3.0
SPM支持SPM

Florian Krüger维护。



文稿 3.0.3

Manuscript: Dead-Simple AutoLayout

它就像AutoLayoutKit,但是是用Swift编写的。适用于纯Swift项目。而且它非常简单。

特性

  • [x] 简洁、简单且方便的API
  • [x] 原生的AutoLayout功能
  • [x] 没有任何黑魔法
  • [x] 完全文档化
  • [x] 完全单元测试

更多详细信息请参阅变更日志

要求

  • iOS 8.0+
  • Xcode 8.x
  • Swift 3.1

额外:支持iOS 7.0+和/或tvOS

尽管cocoapods还无法为您的iOS 7.0+应用程序或tvOS应用程序安装文稿(暂且如此),您仍然可以使用文稿。只需遵循“手动”安装或添加文稿作为一个框架项目到您的工作空间即可(我就是这么做的)。

外观

Manuscript.layout(myButton) { c in
  c.set(.Height, to: 60.0)
  c.set(.Width, to: 60.0)
  c.make(.Bottom, equalTo: self.view, s: .Bottom, minus: 10.0)
  c.make(.CenterX, equalTo: self.view, s: .CenterX)
}

用法

关于如何使用文稿的一些示例。

居中并设置大小

居中self.view中的UIView 'childView’并将其大小设为30×30

Manuscript.layout(childView) { c in
  c.make(.CenterX, equalTo: view, s: .CenterX)
  c.make(.CenterY, equalTo: view, s: .CenterY)
  c.set(.Width, to: 30.0)
  c.set(.Height, to: 30.0)
}

同样,但是使用便捷方法

Manuscript.layout(childView) { c in
  c.centerIn(view)
  c.setSize(CGSize(width: 30.0, height: 30.0))
}

将视图的所有边与父视图对齐

将UIView 'container’与self.view的所有边对齐

Manuscript.layout(container) { c in
  c.make(.Left, equalTo: view, s: .Left)
  c.make(.Right, equalTo: view, s: .Right)
  c.make(.Top, equalTo: view, s: .Top)
  c.make(.Bottom, equalTo: view, s: .Bottom)
}

同样,但是使用便捷方法

Manuscript.layout(container) { c in
  c.alignAllEdges(to: view)
}

使用内边距对齐所有边

将UIView 'container’与self.view的所有边对齐,并在容器周围留下30点的边距。

Manuscript.layout(container) { c in
  c.make(.Left, equalTo: view, s: .Left, plus: 30.0)
  c.make(.Right, equalTo: view, s: .Right, minus: 30.0)
  c.make(.Top, equalTo: view, s: .Top, plus: 30.0)
  c.make(.Bottom, equalTo: view, s: .Bottom, minus: 30.0)
}

同样,但是使用便捷方法。

Manuscript.layout(container) { c in
  c.alignAllEdges(to: view, withInsets: UIEdgeInsets(top: 30.0, left: 30.0, bottom: 30.0, right: 30.0))
}

使用布局指南

利用UIViewController提供的布局指南。

Manuscript.layout(container) { c in
  c.make(.Left, equalTo: view, s: .Left)
  c.make(.Right, equalTo: view, s: .Right)
  c.make(.Top, equalTo: topLayoutGuide, s: .Baseline)
  c.make(.Bottom, equalTo: bottomLayoutGuide, s: .Baseline)
}

使用虚线

有一个实用方法可以创建考虑屏幕比例的虚线。

Manuscript.layout(mySeparatorLine) { c in
  c.make(.Left, equalTo: view, s: .Left)
  c.make(.Right, equalTo: view, s: .Right)
  c.make(.Top, equalTo: topLayoutGuide, s: .Baseline)

  // sets the .Height to 1.0 on non-retina displays and to 0.5 on retina displays
  c.makeHorizontalHairline()
}

与已创建的布局约束工作

函数makeset返回一个LayoutItem类型的元组,对应于(constraint: NSLayoutConstraint?, targetItem: UIView?)。'constraint’是指定的NSLayoutConstraint,'targetItem’是添加NSLayoutConstraint的视图。它是涉及的UIView的最近共同父视图。

Manuscript.layout(container) { c in
  leftConstaint = c.make(.Left, equalTo: view, s: .Left).constraint
  rightConstaint = c.make(.Right, equalTo: view, s: .Right).constraint
  topConstaint = c.make(.Top, equalTo: topLayoutGuide, s: .Baseline).constraint
  bottomConstaint = c.make(.Bottom, equalTo: bottomLayoutGuide, s: .Baseline).constraint
}

之后,只需修改约束的常量并应用更改(这是普通的自动布局)。

UIView.animateWithDuration(0.6) { in
  topConstraint?.constant = 100
  view.layoutIfNeeded()
}

便捷方法

便捷方法返回所述元组的数组。将来也可能会是字典或元组,以提供更容易访问创建的约束。在此之前,检查代码的返回约束的顺序。

安装

截至目前,您可以使用Carthage或CocoaPods通过依赖项管理器使用Manuscript安装,或者手动安装。

手动安装

要手动做到这一点,请取以下文件并将它们添加到您的项目中

  • 源/Manuscript.swift
  • 源/LayoutProxy.swift

许可

Manuscript是在MIT许可下发布的。