代码写界面的工厂类

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

@interface DLUIKit : NSObject

#pragma mark --------- UILabel --------

/** Label 字色 字号 */
+ (UILabel *)labelTextColor:(UIColor *)textColor
                   fontSize:(CGFloat)size;

/** Label 文字 字号 */
+ (UILabel *)labelWithText:(NSString *)text
                  fontSize:(CGFloat)size;

/** Label 字色 行数 文字 字号 */
+ (UILabel *)labelWithTextColor:(UIColor *)textColor
                  numberOfLines:(NSInteger)numberOfLines
                           text:(NSString *)text
                       fontSize:(CGFloat)size;

/** Label 背景色 字色 对其 行数 文字 字号 */
+ (UILabel *)labelWithBackgroundColor:(UIColor *)backgroundColor
                            textColor:(UIColor *)textColor
                        textAlignment:(NSTextAlignment)textAlignment
                        numberOfLines:(NSInteger)numberOfLines
                                 text:(NSString *)text
                             fontSize:(CGFloat)size;

#pragma mark --------- UIImageView --------

/** ImageView 图片 */
+ (UIImageView *)imageViewWithImage:(UIImage *)image;

/** ImageView 图片 交互 */
+ (UIImageView *)imageViewWithImage:(UIImage *)image
             userInteractionEnabled:(BOOL)enabled;

/** ImageView 填充方式 图片 */
+ (UIImageView *)imageViewWithContentMode:(UIViewContentMode)mode
                                    image:(UIImage *)image;

/** ImageView 填充方式 交互 图片 */
+ (UIImageView *)imageViewWithContentMode:(UIViewContentMode)mode
                   userInteractionEnabled:(BOOL)enabled
                                    image:(UIImage *)image;

#pragma mark --------- UIButton --------

/** UIButton 前景图 */
+ (UIButton *)buttonWithImage:(UIImage *)image;

/** UIButton 背景色 标题色 标题 字号 */
+ (UIButton *)buttonWithBackgroundColor:(UIColor *)backgroundColor
                             titleColor:(UIColor *)titleColor
                                  title:(NSString *)title
                               fontSize:(CGFloat)size;

/** UIButton 背景色 标题色 标题高亮色 标题 字号 */
+ (UIButton *)buttonWithBackgroundColor:(UIColor *)backgroundColor
                             titleColor:(UIColor *)titleColor
                    titleHighlightColor:(UIColor *)titleHighlightColor
                                  title:(NSString *)title
                               fontSize:(CGFloat)size;

#pragma mark --------- TableView --------

+ (UITableView *)tableViewWithFrame:(CGRect)frame
                              style:(UITableViewStyle)style
                           delegate:(id)delegate;

+ (void)dl_tableView:(UITableView *)tableView withDelegate:(id)delegate;

@end
#import "DLUIKit.h"

@implementation DLUIKit

#pragma mark --------- Label --------

+ (UILabel *)labelTextColor:(UIColor *)textColor
                   fontSize:(CGFloat)size {
    return [SJUIKit labelWithBackgroundColor:[UIColor clearColor] textColor:textColor textAlignment:NSTextAlignmentLeft numberOfLines:1 text:nil fontSize:size];

}

+ (UILabel *)labelWithText:(NSString *)text
                  fontSize:(CGFloat)size {
    return [SJUIKit labelWithBackgroundColor:[UIColor clearColor] textColor:[UIColor blackColor] textAlignment:NSTextAlignmentLeft numberOfLines:1 text:text fontSize:size];

}

+ (UILabel *)labelWithTextColor:(UIColor *)textColor
                  numberOfLines:(NSInteger)numberOfLines
                           text:(NSString *)text
                       fontSize:(CGFloat)size {
    return [SJUIKit labelWithBackgroundColor:[UIColor clearColor] textColor:textColor textAlignment:NSTextAlignmentLeft numberOfLines:numberOfLines text:text fontSize:size];

}

+ (UILabel *)labelWithBackgroundColor:(UIColor *)backgroundColor
                            textColor:(UIColor *)textColor
                        textAlignment:(NSTextAlignment)textAlignment
                        numberOfLines:(NSInteger)numberOfLines
                                 text:(NSString *)text
                             fontSize:(CGFloat)size {

    UILabel *label = [[UILabel alloc] init];
    label.backgroundColor = backgroundColor;
    label.textColor = textColor;
    label.textAlignment = textAlignment;
    label.numberOfLines = numberOfLines;
    label.text = text;
    label.font = [UIFont systemFontOfSize:size];
    return label;
}

#pragma mark --------- ImageView --------

+ (UIImageView *)imageViewWithImage:(UIImage *)image {

    return [SJUIKit imageViewWithContentMode:UIViewContentModeScaleToFill userInteractionEnabled:NO image:image];
}

+ (UIImageView *)imageViewWithImage:(UIImage *)image
             userInteractionEnabled:(BOOL)enabled {

    return [SJUIKit imageViewWithContentMode:UIViewContentModeScaleToFill userInteractionEnabled:enabled image:image];
}

+ (UIImageView *)imageViewWithContentMode:(UIViewContentMode)mode
                                    image:(UIImage *)image {

    return [SJUIKit imageViewWithContentMode:mode userInteractionEnabled:NO image:image];
}

+ (UIImageView *)imageViewWithContentMode:(UIViewContentMode)mode
                   userInteractionEnabled:(BOOL)enabled
                                    image:(UIImage *)image {

    UIImageView *imageView = [[UIImageView alloc] init];
    imageView.contentMode = mode;
    imageView.userInteractionEnabled = enabled;
    imageView.image = image;
    return imageView;
}

#pragma mark --------- UIButton --------

+ (UIButton *)buttonWithImage:(UIImage *)image {
    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
    [btn setImage:image forState:UIControlStateNormal];
    return btn;

}

+ (UIButton *)buttonWithBackgroundColor:(UIColor *)backgroundColor
                             titleColor:(UIColor *)titleColor
                                  title:(NSString *)title
                               fontSize:(CGFloat)size {

    return [SJUIKit buttonWithBackgroundColor:backgroundColor titleColor:titleColor titleHighlightColor:titleColor title:title fontSize:size];
}

+ (UIButton *)buttonWithBackgroundColor:(UIColor *)backgroundColor
                             titleColor:(UIColor *)titleColor
                    titleHighlightColor:(UIColor *)titleHighlightColor
                                  title:(NSString *)title
                               fontSize:(CGFloat)size {

    UIButton *btn = [UIButton buttonWithType:UIButtonTypeCustom];
    btn.backgroundColor = backgroundColor;
    [btn setTitleColor:titleColor forState:UIControlStateNormal];
    [btn setTitleColor:titleHighlightColor forState:UIControlStateHighlighted];
    [btn setTitle:title forState:UIControlStateNormal];
    btn.titleLabel.font = [UIFont systemFontOfSize:size];
    btn.adjustsImageWhenHighlighted = NO;
    return btn;
}

+ (UITableView *)tableViewWithFrame:(CGRect)frame
                              style:(UITableViewStyle)style
                           delegate:(id)delegate {

    UITableView *tableView = [[UITableView alloc] initWithFrame:frame style:style];
    tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
    tableView.delegate = delegate;
    tableView.dataSource = delegate;
    tableView.backgroundColor = [UIColor whiteColor];
    UIView *footerView = [[UIView alloc] init];
    tableView.tableFooterView = footerView;
    return tableView;
}

+ (void)dl_tableView:(UITableView *)tableView withDelegate:(id)delegate {

    tableView.separatorStyle = UITableViewCellSeparatorStyleNone;
    tableView.delegate = delegate;
    tableView.dataSource = delegate;
    tableView.backgroundColor = [UIColor whiteColor];
    UIView *footerView = [[UIView alloc] init];
    tableView.tableFooterView = footerView;

}

@end
时间: 2024-11-04 08:15:07

代码写界面的工厂类的相关文章

iOS开发过程中,是用Storyboard/xib做界面,还是用代码来写界面,还是混合使用

以下是个人观点,非喜勿喷 关于iOS 开发过程中,是用Sb/xib 做界面 还是代码写界面,一直是讨论不断 各自成帮结派, 拖拉派.代码派.中间派 1. 拖拉派 ,Storyboard/xib 使用者, 像是海贼王里的能力者,开发快.Auto Layout .结构清晰,直观,一目了然 (个人觉得,小项目如此,超过10个界面以上,界面关系在复杂的话,看起来真是一团糟),能力者是有缺点的不会游泳, 同样Storyboard/xib 同样有它的缺点:(以下摘自) a). 所有的ViewControll

重构19-Extract&#160;Factory&#160;Class(提取工厂类)

在代码中,通常需要一些复杂的对象创建工作,以使这些对象达到一种可以使用的状态.通常情况下,这种创建不过是新建对象实例,并以我们需要的方式进行工作.但是,有时候这种创建对象的需求会极具增长,并且混淆了创建对象的原始代码.这时,工厂类就派上用场了.关于工厂模式更全面的描述可以参考这里.最复杂的工厂模式是使用抽象工厂创建对象族.而我们只是使用最基本的方式,用一个工厂类创建一个特殊类的实例.来看下面的代码: public class PoliceCarController { public Police

研磨设计模式解析及python代码实现——(一)简单工厂模式

最近在学设计模式,正巧书之前学了些python,但用的还不是很成熟.<研磨设计模式>书上只给了java代码,本着以练手为目标,我照着书上打了一遍java代码,在仔细体会其思想后,将其写成了python的代码.有不对的地方希望各位批评指正~ 具体原理不多做介绍,具体可以参考http://chjavach.iteye.com的博客,或者<研磨设计模式>的书. 一.背景介绍 接口思想: 众所周知,面向对象语言最大的特点便是封装,继承,多态这三个概念.而像Java等面向对象语言最核心的思想

ios 用纯代码写程序的时候,navigationController的导航栏的设置

我们都知道,如果用storyBoard设置导航栏很容易,点击左右item的时候,进入下一个界面,导航栏的颜色是跟上一层的是一样的,用纯代码写的时候,可以在当前控制器,和从当前控制器进入到下一个控制器都用代码实现对导航栏的控制,但是,每次都写代码设置,很麻烦,所以,可以这样: 创建一个MainTabBarController的类,在Appdelegate.m里面完成: - (BOOL)application:(UIApplication *)application didFinishLaunchi

浅谈设计模式之工厂类模式由简单到复杂的演变

前言 在软件设计过程中,我们总是需要创建很多对象,而且系统越庞大,创建的对象越复杂.而今天我们将讨论的就是解决对象创建时的难题--工厂类模式.为了贴近工厂这个词,我们采用工厂建造汽车这个例子来阐明工厂类模式的演变和什么场景下使用什么模式. 场景1.:一位顾客要开车从上海到苏州,他需要一辆汽车,于是他自己组装汽车,给车装轮胎.导航仪.车灯等. 问题:1.显然,顾客只是想拥有一辆汽车,他不想知道怎么去买汽车,更不想知道怎么组装,然后还要给汽车上漆. 2.如果他想换个型号的汽车,他得重新来遍组装汽车.

CodeFirst写界面——自己写客户端UI库

何谓CBS程序 CBS程序就是Client+Browser+Service的程序 纯CS程序写界面,有各种难处,那么我就在Client端引入Browser,让Browser渲染基于HTML的UI界面 何谓WUI 就算用用HTML渲染UI界面,那么开发人员还是要掌握HTML+CSS+JS的知识,这些知识还是比较复杂的 WUI库就是把HTML+CSS+JS封装成起来,组成一个界面元素库,(类似于Extjs和easyui) 意图是让开发人员就只要掌握C#代码,就能写出漂亮的UI界面 第一步:WUI库中

代码重构:用工厂+策略模式优化过多的if else代码块

最近在工作中优化了一段冗余的if else代码块,感觉对设计模式的理解和运用很有帮助,所以分享出来.鉴于原代码会涉及到公司的隐私,因此就不贴出来了.下面以更加通俗易懂的案例来解析. 假如写一个针对员工上班不遵守制度做相应惩罚的程序,比如,上班迟到:罚100:上班睡觉:罚1000:上班早退:警告:上班玩游戏:严重警告:上班谈恋爱:开除等,通常都会这样写: public class WorkPunish { public static void main(String[] agrs){ String

2)小案例步骤2,添加工厂类

和上面的思路一样,只不过稍加改进的是加了工厂类,来实例化数据库对象 框图展示: 代码展示: 只是在zixun.controller.class.php                               发生了代码改动: 1 <?php 2 //header('Content-type:text/html;charset=utf8'); 3 /** 4 * Created by PhpStorm. 5 * User: Interact 6 * Date: 2017/8/19 7 * Ti

hibernate 创建工厂类

package cn.hibernate; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; /** * 创建一个工厂类 用于创建SessionFactory唯一的一个 */ public class SessionFactoryUtils { private static SessionFactory sessionFactory; // 在静态的代码块中创建这个对象 static { //