BBQ 0.4.7

BBQ 0.4.7

qzjian 维护。



BBQ 0.4.7

  • qinzj

BBQ

背景


对于 iOS 繁杂的界面布局语法以及常用控件松散的代理方法编写,业界已有 SnpKit 以及 RxSwift 框架解决方案,本人还是抽空写了此 SDK,主要是因为个人觉得 SnpKit 和 RxSwift 的框架太过重量级,编译耗时,随便写个小 demo 就导入一大堆代码。

功能


BBQ 的初衷就是让写代码更舒服,目前主要有两个功能:

  1. 简化 iOS 繁杂的界面布局语法
  2. 将常用控件响应方法由代理改为 block 回调

使用示例


一、布局示例

初始化一个待布局的子视图,将其添加到父视图,假设子视图为subview,父视图为 parentview:
let parentview = UIView()
let subview = UIView()
parentview.addSubview(subview)  

将subview设置到父视图中央,宽100,高50: 
subview.bbq!.centerX().centerY().size(100,50)

将subview设为距离父视图左边50,上边60,宽150,高100: 
subview.bbq()!.left(50).top(60).size(150, 200)

更多布局示例请参考文件‘UIView+layout.swift’,代码很简单,一看就懂用😄

二、控件响应示例

UIButton点击响应写法:
let btn = UIButton();
btn.onTap { (btn) in  // do stuff}.addOwner(self)

UITextFiled文字变动监听: 
let textfield = UITextField(); 
textfield.onTextChange { (tf) in // do stuff}.addOwner(self)

UITextView文字变动监听: 
let textview = UITextView(); 
textview.onTextViewChange { (tv) in // do stuff}.addOwner(self)

UISwitch开关监听:
let switch = UISwitch();
switch.onToggle { (switch) in //do stuff}.addOwner(self)

上面的addOwner(self)里面self是啥呢,一般就是 viewcontroller 对象,因为该对象持有上述 UI 控件,为了简化调用者内存管理而存在

更多控件响应示例请参考源码,代码很简单,一看就懂用😄

安装


需要先安装 cocoaPods

在 Podfile 加入下面一行:pod 'BBQ'

在终端运行 pod install

总结


本SDK不包含RxSwift的异步链式函数响应式功能,主要致力于简化原生iOS复杂的界面布局语法,以及常用控件松散的代理方法编写。如有好的建议请@我。