EZAnchor 0.0.4

EZAnchor 0.0.4

Alex Liu 维护。




EZAnchor 0.0.4

  • Alex Liu

EZAnchor

更简单的 Autolayout 编码方式

Image of EZAnchor

Language: Swift 4 Platform: iOS 9+ CocoaPods compatible License: MIT

  • 在使用 Autolayout Anchors 不断编码 .active = true 是否让您感到烦恼?
  • 是否因为反复编写如此长的约束语句 refreshView.heightAnchor.constraint(equalToConstant: self.refreshViewHeight).isActive = true 而感到烦恼?

现在,通过简单的安装,EZAnchor 一定可以缩短您编写 Autolayout Anchors 的时间。让我们一起看看它是如何工作的。

  • 锚约束到另一个锚
//Traditional way
viewA.leadingAnchor.constraint(equalTo: viewB.leadingAnchor).isActive = true

//With EZAnchor
viewA.leading == viewB.leading
  • 带有常数的锚约束到另一个锚
//Traditional way
viewA.leadingAnchor.constraint(equalTo: self.view.leadingAnchor, constant: 10).isActive = true

//With EZAnchor
viewA.leading == self.view.leading + 10
  • 带有负常数的锚约束到另一个锚
//Traditional way
viewA.leadingAnchor.constraint(equalTo: viewB.leadingAnchor, constant: -10).isActive = true

//With EZAnchor
viewA.leading == viewB.leading - 10
  • 锚不小于等于另一个锚
//Traditional way
viewA.leadingAnchor.constraint(lessThanOrEqualTo: viewB.leadingAnchor).isActive = true

//With EZAnchor
viewA.leading <= viewB.leading
  • 锚不大于等于另一个锚
viewA.leadingAnchor.constraint(greaterThanOrEqualTo: viewB.leadingAnchor).isActive = true

//With EZAnchor
viewA.leading >= viewB.leading
  • 带有常数的锚不小于等于另一个锚
viewA.leadingAnchor.constraint(lessThanOrEqualTo: viewB.leadingAnchor, constant: 10).isActive = true

//With EZAnchor
viewA.leading <= viewB.leading + 10
  • 带有常数的锚不大于等于另一个锚
//Traditional way
viewA.leadingAnchor.constraint(greaterThanOrEqualTo: viewB.leadingAnchor, constant: 10).isActive = true

//With EZAnchor
viewA.leading >= viewB.leading - 10
  • 带有常数的锚和倍数的等价于另一个锚
//Traditional way
viewA.heightAnchor.constraint(equalTo: viewB.heightAnchor, multiplier: 0.1, constant: -10).isActive = true

//With EZAnchor
viewA.height == viewB.height * 0.1 - 10
  • 与优先级一起工作
//With EZAnchor
viewA.leading == (viewB.leading + 0.1) ^ .defaultLow

安装

拖放

直接将 EZAnchor 拖放到您的 Xcode 项目中。

CocoaPods

要使用 CocoaPods 将 EZAnchor 集成到您的 Xcode 项目中,请在您的 Podfile 中指定它

target 'MyApp' do
  pod 'EZAnchor'
end

Carthage

要使用Carthage将EZAnchor集成到您的Xcode项目中,请在Cartfile中指定它:即将推出

运行carthage update以构建框架,然后将构建的EZAnchor.framework拖放到您的Xcode项目中。

演示

您可以使用非常简单和干净的代码轻松实现以下布局

//set viewA's layout constraints
viewA.backgroundColor = UIColor.red
viewA.width == 200
viewA.width == viewA.height
viewA.centerX == view.centerX
viewA.centerY == view.centerY

//set viewB's layout constraints
viewB.top == viewA.bottom + 20
viewB.width == viewA.width * 0.5
viewB.height == viewB.width - 10
viewB.centerX == viewA.centerX
        

Image of DemoScreenshot

限制

  1. 最好有一些对锚的初步了解,熟悉通过编程方式创建锚。如果不熟悉,请从这个链接学习:[通过编程方式创建约束](https://developer.apple.com/library/archive/documentation/UserExperience/Conceptual/AutolayoutPG/ProgrammaticallyCreatingConstraints.html)!

  2. 请避免定义具有与heightwidth相同的名称的自定义UIControl或视图,可能会有与EZAnchor库冲突。

其他

WTF Autolayout可以帮助您调试autolayout错误。
Logo是用Shopify logo maker生成的。
灵感来源于:PureLayoutStevialayout

待办事项

  • 单元测试
  • UI 测试
  • 持续集成
  • Fastlane

许可证

本代码和工具受MIT许可证保护。