LambdaUI 1.1.0

LambdaUI 1.1.0

测试已测试
Lang语言 SwiftSwift
许可证 MIT
发布最后发布2016年7月
SPM支持 SPM

Mislav Javor 维护。



LambdaUI 1.1.0

  • 作者
  • Mislav Javor

LambdaUI

Logo

要求

最低 iOS 8.0

示例

要运行示例项目,克隆仓库,并打开 LambdaUI.xcworkspace

安装

LambdaUI 通过 CocoaPods 提供。要安装,请将以下行添加到您的 Podfile

pod "LambdaUI"

什么是 LambdaUI?

LambdaUI 是一个以闭包驱动的 Swift 事件处理框架。它减少了在 Swift 中为 UI 元素分配事件所需的努力。它还提供了简单直观的 GCD 支持。

设置

一旦您将 LambdaUI 框架添加到项目中,所有 UIControl 实例(例如,UIButtonUIStepperUISlider 等)都将具有一个新的 events 属性。此属性包含给定 UIControl 的所有受支持事件

LambdaUI 使用

UIControl 实例添加事件

let button = UIButton()
button.events.touchUpInside += { _ in
  print("Touched the button")
}

易于移除添加的事件

let stepper = UIStepper()
let eventIdentidier = stepper.events.valueChanged += { _ in
  print("Stepper changed value")
}

if shouldDisableStepperEvents {
  stepper.events.valueChanged -= eventIdentidier
}

轻松添加异步事件

let slider = UISlider()
slider.events.valueChanged += async {
  print("async event")
}

slider.events.valueChanged += async(queue: .UserInteractiveQueue) { _ in
  print("async event on user interactive queue")
}

混合匹配/添加多个事件

@IBOutlet weak var button : UIButton!

override func viewDidLoad() {
  super.viewDidLoad()
  let firstEventIdentifier = button.events.touchUpInside += { _ in
    print("Do first event")
  }

  button.events.touchUpInside += async(queue: .BackgroundQueue) { _ in
    //Disable first event once the second event has been triggered
    button.events.touchUpInside -= firstEventIdentifier
  }
}

贡献

欢迎所有贡献。只需尊重通常的贡献礼仪。提交拉取请求,它将尽快被审查。

作者

Mislav Javor,[email protected]

许可证

LambdaUI 在 MIT 许可证下可用。更多信息请参阅 LICENSE 文件。