美文网首页iOS开发之笔记摘录
链式编程 函数编程---iOS笔记摘录

链式编程 函数编程---iOS笔记摘录

作者: 平安喜乐698 | 来源:发表于2017-09-18 11:23 被阅读13761次
链式编程
增强可读性(通过.将所有操作通过一行代码搞定)

  UILabel
  其他控件(见工具库)

UILabel

使用

 UILabel *nameL=YLable.yfont(UIFont(20)).ytextColor(RGBOF(0xffffff)).InView(headView);

UILabel+LinkBlock.h

#import <UIKit/UIKit.h>

#define   YTLable    [UILabel new]

@interface UILabel (LinkBlock)

+(UILabel *)Init;
- (UILabel * (^)(CGRect bounds))ybounds;
- (UILabel * (^)(CGRect frame))yframe;
- (UILabel * (^)(UIView *View))InView;

- (UILabel * (^)(NSString *text))ytext;
- (UILabel * (^)(UIFont *font))yfont;
- (UILabel * (^)(UIColor *textColor))ytextColor;
- (UILabel * (^)(NSTextAlignment textAlignment))ytextAlignment;

- (UILabel * (^)(NSInteger numberOfLines))ynumberOfLines;
- (UILabel * (^)(UIColor *backgroundColor))ybackgroundColor;
- (UILabel * (^)(NSAttributedString *attributedText))yattributedText;
- (UILabel * (^)(CGFloat cornerRadius))ycornerRadius;
@end

UILabel+LinkBlock.m

#import "UILabel+LinkBlock.h"

@implementation UILabel (LinkBlock)

+(UILabel *)Init{
    
    return [[UILabel alloc] init];
}


// bounds
- (UILabel * (^)(CGRect bounds))ybounds{
    return ^id(CGRect ybounds){
        self.bounds= ybounds;
        return self;
    };
}
// frame
- (UILabel * (^)(CGRect frame))yframe{
    return ^id(CGRect yframe){
        self.frame= yframe;
        return self;
    };
}
// text
- (UILabel * (^)(NSString *text))ytext{
    return ^id(NSString  *ytext){
        self.text=ytext;
        return self;
    };
}
// color
- (UILabel * (^)(UIColor *textColor))ytextColor{
    return ^id(UIColor *ytextColor ){
        self.textColor=ytextColor;
        return self;
    };
}
// font
- (UILabel * (^)(UIFont *font))yfont{
    return ^id(UIFont *yfont){
        self.font= yfont;
        return self;
    };
}
// textAlignment
- (UILabel * (^)(NSTextAlignment textAlignment))ytextAlignment{
    return ^id(NSTextAlignment  ytextAlignment){
        self.textAlignment=ytextAlignment;
        return self;
    };
}
// numberOfLines
- (UILabel * (^)(NSInteger numberOfLines))ynumberOfLines{
    return ^id(NSInteger ynumberOfLines ){
        self.numberOfLines=ynumberOfLines;
        return self;
    };
}
// backgroundColor
- (UILabel * (^)(UIColor *backgroundColor))ybackgroundColor{
    return ^id(UIColor *ybackgroundColor ){
        self.backgroundColor=ybackgroundColor;
        return self;
    };
}
// attributedText
- (UILabel * (^)(NSAttributedString *attributedText))yattributedText{
    return ^id(NSAttributedString  *yattributedText){
        self.attributedText=yattributedText;
        return self;
    };
}
// cornerRadius
- (UILabel * (^)(CGFloat cornerRadius))ycornerRadius{
    return ^id(CGFloat  ycornerRadius){
        self.layer.cornerRadius=ycornerRadius;
        self.layer.masksToBounds=YES;
        return self;
    };
}
// add in SupperView
- (UILabel * (^)(UIView *View))InView{
    return ^id(UIView  *InView){
        [InView addSubview:self];
        return self;
    };
}
@end
函数编程
函数做完操作后,返回对象本身。

相关文章

  • ReactiveObjC入门

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

  • 链式编程 函数编程---iOS笔记摘录

    链式编程 UILabel 使用 UILabel+LinkBlock.h UILabel+LinkBlock.m 函数编程

  • 工作iOS技术总结

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

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

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

  • iOS-链式编程

    函数式编程------->链式编程 函数式编程: 调用方式 我们最终目的是将函数式编程转换为链式编程:首先将调用方...

  • iOS 函数编程 & 链式编程

    函数式(链式)编程 函数式编程概念 函数式编程是种编程范式 函数式编程 Functional Programmin...

  • iOS链式编程及函数式编程

    提到链式编程和函数式编程,最典型的代表是Masonry 比较完美的实现了函数式编程和链式编程。例如 ``` [vi...

  • iOS的block与编程思想(一)

    本文承接自上一篇《iOS的block与链式编程思想》 函数式编程 首先我们需要明白什么是函数式编程么?先说一点比较...

  • RAC学习详解

    Block开发基础知识 链式编程思想简介 响应式编程思想简介 函数式编程思想简介 参考资料 iOS 关于MVC和M...

  • 链式编程与函数编程

    1. 链式编程 2. 函数式编程 例子:

网友评论

    本文标题:链式编程 函数编程---iOS笔记摘录

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