美文网首页
实用工厂模式+链式编程 快速生成UI控件 iOS

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

作者: ztlight000 | 来源:发表于2018-04-05 22:08 被阅读199次

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

一、出发点

写这个工具类的出发点是平时我们创建一个UI控件的时候,往往需要写很多代码去设置各个属性,比如创建一个button,要设置Text、Frame、BackgroundImage、点击事件等等,BackgroundImag还要设置状态,浪费很多时间,这里我们通过工厂模式快速生成常用的控件。

二、代码说明

工厂类ControlFactory中初始化UI控件

+ (UIView*)view;

+ (UIButton*)button;

+ (UILabel*)label;

+ (UIImageView*)imageView;

+ (UITextView*)textView;

+ (UITextField*)textField;

+ (UIScrollView*)scrollView;

+ (UIWebView*)webView;

+ (UIPageControl*)pageControl;

装饰类中我们以button为例,可以进行以下设置

//设置frame

- (UIButton*(^)(CGRectframe))buttonFrame;

// 设置背景色

- (UIButton*(^)(UIColor*color))buttonBackgroundColor;

//设置text

- (UIButton*(^)(NSString*text))buttonText;

//设置字体

- (UIButton*(^)(UIFont*textFont))buttonFont;

//设置背景图片

- (UIButton*(^)(NSString*imageName))buttonBGimage;

//设置normalImage

- (UIButton*(^)(NSString*normalImageName))normalImageName;

//设置高亮状态的图片

- (UIButton*(^)(NSString*highlightImageName))highlightImageName;

//设置选中的图片

- (UIButton*(^)(NSString*selectImageName))selectImageName;

//设置普通的title的颜色

- (UIButton*(^)(UIColor*normalTitleColor))normalTitleColor;

//设置选中的title的颜色

- (UIButton*(^)(UIColor*selectTitleColor))selectTitleColor;

//target action

- (UIButton*(^)(idtarget,SELsel))targetAction;

// 设置圆角

- (UIButton*(^)(CGFloatradius))buttonCornerRadius;

// 设置圆角边线的颜色

- (UIButton*(^)(UIColor*color))buttonCornerColor;

// 设置圆角边线的宽度

- (UIButton*(^)(CGFloatwidth))buttonCornerWidth;

实现方式如下形式:

- (UIButton*(^)(NSString*text))buttonText {

    UIButton*(^buttonBlock)(NSString*text) = ^(NSString*text) {

        [self setTitle:text forState:UIControlStateNormal];

        return self;

    };

    returnbuttonBlock;

}

三、使用方式

    UIButton *btn = [ControlFactory button];

    btn.buttonText(@"hello world").buttonFont([UIFont systemFontOfSize:12]).buttonFrame(CGRectZero);

    [self.viewaddSubview:btn];

这样就可以快速处理UI控件了,希望对大家有帮助。

相关文章

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

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

  • 责任链模式

    Objective-C编程之道 iOS设计模式解析iOS设计模式解析-工厂模式iOS设计模式解析-抽象工厂模式iO...

  • 外观模式

    Objective-C编程之道 iOS设计模式解析iOS设计模式解析-工厂模式iOS设计模式解析-抽象工厂模式iO...

  • 工厂模式

    Objective-C编程之道 iOS设计模式解析iOS设计模式解析-工厂模式iOS设计模式解析-抽象工厂模式iO...

  • 抽象工厂模式

    Objective-C编程之道 iOS设计模式解析iOS设计模式解析-工厂模式iOS设计模式解析-抽象工厂模式iO...

  • 享元模式

    Objective-C编程之道 iOS设计模式解析iOS设计模式解析-工厂模式iOS设计模式解析-抽象工厂模式iO...

  • 观察者模式

    Objective-C编程之道 iOS设计模式解析iOS设计模式解析-工厂模式iOS设计模式解析-抽象工厂模式iO...

  • 中介者模式

    Objective-C编程之道 iOS设计模式解析iOS设计模式解析-工厂模式iOS设计模式解析-抽象工厂模式iO...

  • 策略模式

    Objective-C编程之道 iOS设计模式解析iOS设计模式解析-工厂模式iOS设计模式解析-抽象工厂模式iO...

  • 模板方法

    Objective-C编程之道 iOS设计模式解析iOS设计模式解析-工厂模式iOS设计模式解析-抽象工厂模式iO...

网友评论

      本文标题:实用工厂模式+链式编程 快速生成UI控件 iOS

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