美文网首页
实用链式编程演示 iOS

实用链式编程演示 iOS

作者: ztlight000 | 来源:发表于2018-04-04 17:54 被阅读23次

一、简单理解:

链式编程的直观表现是我们可以使用点语法一直获取这个对象的属性并赋值,比如Masonry。

实现的思路是我们定义get方法时,让这个方法返回一个block,而block的返回值为当前对象,这样每当我们执行完这个方法得到的永远是当前对象,然后就可以继续使用点语法调用其他方法。

二、代码演示

这里我们演示一个设置设置frame的例子

我们定义一个UIView的分类如下:

@interfaceUIView (Frame)

- (UIView*(^)(CGFloat))x;

- (UIView*(^)(CGFloat))y;

- (UIView*(^)(CGFloat))w;

- (UIView*(^)(CGFloat))h;

.m中的实现如下:

@implementation UIView (Frame)

- (UIView*(^)(CGFloat))x{

    __weak typeof(self) weakSelf = self;

    UIView*(^blockName)(CGFloat) = ^(CGFloatx) {

        CGRectframe = weakSelf.frame;

        frame.origin.x = x;

        weakSelf.frame = frame;

        returnweakSelf;

    };

    returnblockName;

}

- (UIView*(^)(CGFloat))y {

    __weak typeof(self) weakSelf = self;

    UIView*(^blockName)(CGFloat) = ^(CGFloaty) {

        CGRectframe = weakSelf.frame;

        frame.origin.y = y;

        weakSelf.frame = frame;

        returnweakSelf;

    };

    returnblockName;

}

- (UIView*(^)(CGFloat))w {

    __weak typeof(self) weakSelf = self;

    UIView*(^blockName)(CGFloat) = ^(CGFloatw) {

        CGRectframe = weakSelf.frame;

        frame.size.width = w;

        weakSelf.frame = frame;

        returnweakSelf;

    };

    returnblockName;

}

- (UIView*(^)(CGFloat))h {

    __weak typeof(self) weakSelf = self;

    UIView*(^blockName)(CGFloat) = ^(CGFloath) {

        CGRectframe = weakSelf.frame;

        frame.size.height = h;

        weakSelf.frame = frame;

        returnweakSelf;

    };

    returnblockName;

}

三、使用方式

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeContactAdd];

    btn.backgroundColor = [UIColor redColor];

    [self.viewaddSubview:btn];

    btn.x(10).y(333).w(100).h(100).w(200).x(80);

 btn.x(10)是执行block,执行之后block返回的是当前的view。

下一篇:实用工厂模式+链式编程 快速生成UI控件

相关文章

  • 实用链式编程演示 iOS

    一、简单理解: 链式编程的直观表现是我们可以使用点语法一直获取这个对象的属性并赋值,比如Masonry。 实现的思...

  • 实用工厂模式+链式编程 快速生成UI控件 iOS

    承接上一篇说的链式编程,上一篇:实用链式编程演示,这里我们补充一个链式编程正式的Demo,可以直接拖到项目中使用,...

  • 工作iOS技术总结

    链式编程、函数式、面向接口编程思想 iOS 之ReactiveCocoa 链式编程2 WKWebView的缓存处理...

  • ReactiveObjC入门

    ReactiveObjC基础用法 iOS开发三种编程方式(响应式编程、函数编程、链式编程),函数编程最常用,链式编...

  • 链式编程总结

    链式编程总结 @(iOS) 研究了一下链式编程,但是感觉项目中用处不是很多。 介绍 1.什么时候使用链式编程?在面...

  • iOS 链式编程简单的使用

    iOS 链式编程简单的使用 链式编程-顾名思义,链式,连贯性为其主要特征,放在编程领域来讲,说简单点就是把一系列的...

  • iOS-链式编程思想

    在iOS中,链式编程虽然用的不太多,但是,在特定的应用环境下,利用block实现链式编程的话,会大大的提高编程效率...

  • iOS链式编程

    在iOS中,链式编程虽然用的不太多,但是,在特定的应用环境下,利用block实现链式编程的话,会大大的提高编程效率...

  • iOS链式、函数式和响应式编程

    原文编程思想-iOS链式、函数式和响应式编程 在了解链式、函数式和响应式编程前,我们需要回顾下Block,它在下面...

  • iOS 链式编程

    本来想将题目取名为 masonry源码心得之链式编程 的。但想着想着没什么必要,我写文章主要目的是做笔记自己看的。...

网友评论

      本文标题:实用链式编程演示 iOS

      本文链接:https://www.haomeiwen.com/subject/iaqlhftx.html