欢迎光临
我们一直在努力

DUKEBlocksKit部分借鉴了著名框架Aspects,BlocksKit,ReactiveCocoa…

建站超值云服务器,限时71元/月

DUKEBlocksKit部分借鉴了著名框架Aspects,BlocksKit,ReactiveCocoa...

项目介绍:

DUKEBlocksKit 一行代码解决属性绑定,模仿ReactiveCocoa

DUKE(self.textfield, text) = DUKEObserve(self.message, text);  

DUKEBlocksKit【前言】

  • DUKEBlocksKit部分借鉴了著名框架Aspects) , BlocksKit) 与 ReactiveCocoa) 神奇的宏定义

  • 1.动态代理:
            – 先简单的介绍一下BlocksKit) 框架的动态代理 在动态代理这部分可以说是 BlocksKit 的精华。它使用 block 属性替换 UIKit中的所有能够通过代理完成的事件,省略了设置代理和实现方法的过程,让对象自己实现代理方法(其实不是对象自己实现的代理方法,只是框架为我们提供的便捷方法,不需要构造其它对象就能完成代理方法的实现),而且这个功能的实现是极其动态的。具体可以参照博客 神奇的BlocksKit)

        – DUKEBlocksKit)在使用上优于BlocksKit, BlocksKit动态代理步骤比较繁琐:1.获取及注册被代理类的动态代理对象 2.需要将委托对象的代理方法映射一个block对象 3.设置为动态代理  DUKEBlocksKit使用步骤请见后面示例
        – DUKEBlocksKit)支持自定义委托方法转block

  • 2.RAC(TARGET, …) 与 RACObserve(TARGET, KEYPATH)的巧妙结合
            – DUKEBlocksKit)模仿了ReactiveCocoa) 支持KVO神奇的宏,例如 RAC宏绑定属性:

        RAC(self.outputLabel, text) = RACObserve(self.model, name);  
  • 3.UIControl事件转block

UIButton *exampleBtn = [UIButton buttonWithType:UIButtonTypeCustom];  
[exampleBtn duke_addTouchUpInside:^(id sender) {  
           // TouchUpInside事件回调  
        }];  

DUKEBlocksKit【支持】

  • 动态代理(UIKit 中的所有能够通过代理完成的事件与自定义委托)

  • 支持ReactiveCocoa)神奇RAC(TARGET, ...)RACObserve(TARGET, KEYPATH)的巧妙结合的宏

  • UIControl事件转block

  • 后续还会增加

DUKEBlocksKit【示例】

1.动态代理

UIActionSheet *sheet = [[UIActionSheet alloc] initWithTitle:@"DUKEBlocksKitExample" delegate:nil cancelButtonTitle:@"取消" destructiveButtonTitle:nil otherButtonTitles:@"Example1",@"Example2",nil];  

    [sheet duke_mapSelector:@selector(actionSheet:clickedButtonAtIndex:) usingBlock:^(UIActionSheet *actionSheet, NSInteger buttonIndex) {  
         // UIActionSheet 回调事件  
    }];  

    [sheet duke_beginDynamicDelegate];  
    [sheet showInView:self.view];  

2.RAC(TARGET, …) 与 RACObserve(TARGET, KEYPATH)

DUKE(self.textfield, text) = DUKEObserve(self.message, text);  

3.UIControl事件转block

UIButton *exampleBtn = [UIButton buttonWithType:UIButtonTypeCustom];  
[exampleBtn duke_addTouchUpInside:^(id sender) {  
           // TouchUpInside事件回调  
        }];  

DUKEBlocksKit【安装】

From CocoaPods【使用CocoaPods】

pod 'DUKEBlocksKit'  

DUKEBlocksKit【期待】

  • 如果在使用过程中遇到BUG,希望你能Issues我,谢谢(或者尝试下载最新的框架代码看看BUG修复没有)

  • 如果在使用过程中发现功能不够用,希望你能Issues我,我非常想为这个框架增加更多好用的功能,谢谢

  • 如果你想为DUKEBlocksKit输出代码,请拼命Pull Requests我

  • 感谢你的支持是我无限的动力

如果喜欢请star一下,感谢你的支持!

github地址:https://github.com/xiezhongmin/DUKEBlocksKit
code4app

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » DUKEBlocksKit部分借鉴了著名框架Aspects,BlocksKit,ReactiveCocoa…
分享到: 更多 (0)