自定义视图与工厂模式
2016-01-15 21:36
387 查看
自定义视图:
实现自定义View的步骤:
1 创建一个UIView的子类
2 在初始化方法中添加子视图
3 提供一些接口,给外界操作子视图
其意义就是将包含内容一样的几个控件放在一个View上面,通过外部调用View来声明属性,这样所声明的属性就包含在View中创建的几个控件。
工厂模式:
为UIView提供一个类目,在这个类目中添加方法,当引用这个类目的时候可以调用其中所生命的方法。
它与自定义视图的不同就是,自定义视图声明的属性如果被调用的时候会全部使用,而工厂模式中可以创建不同的方法来针对不同的内容,这样就可以在使用用的时候调用正确的方法,比自定义视图的灵活性更强。
例:
//设置文字内容
-(UILabel )AddLabelWithFrame:(CGRect)frame LabelText:(NSString )text;
//设置文字内容加字体
-(UILabel )AddLabelWithFrame:(CGRect)frame LabelText:(NSString )text LabelFont:(UIFont *)font;
//设置文字加颜色
-(UILabel )AddLabelWithFrame:(CGRect)frame LabelText:(NSString )text LabelColor:(UIColor *)color;
-(UILabel )AddLabelWithFrame:(CGRect)frame LabelText:(NSString )text{
UILabel *label = [[UILabel alloc]initWithFrame:frame];
label.text = text;
[self addSubview: label];
return label;
}
//设置文字内容加字体
-(UILabel )AddLabelWithFrame:(CGRect)frame LabelText:(NSString )text LabelFont:(UIFont *)font{
UILabel * la = [self AddLabelWithFrame:frame LabelText:text];
la.font = font;
[self addSubview: la];
return la;
}
//设置文字加颜色
-(UILabel*)AddLabelWithFrame:(CGRect)frame LabelText:(NSString )text LabelColor:(UIColor )color{
UILabel * la = [self AddLabelWithFrame:frame LabelText:text];
la.textColor = color;
[self addSubview: la];
return la;
}
// 创建用户名及输入框
self.nameLabel = [self AddLabelWithFrame:CGRectMake(30, 30, 150, 50) LabelText:@”用户名” ];
实现自定义View的步骤:
1 创建一个UIView的子类
2 在初始化方法中添加子视图
3 提供一些接口,给外界操作子视图
其意义就是将包含内容一样的几个控件放在一个View上面,通过外部调用View来声明属性,这样所声明的属性就包含在View中创建的几个控件。
工厂模式:
为UIView提供一个类目,在这个类目中添加方法,当引用这个类目的时候可以调用其中所生命的方法。
它与自定义视图的不同就是,自定义视图声明的属性如果被调用的时候会全部使用,而工厂模式中可以创建不同的方法来针对不同的内容,这样就可以在使用用的时候调用正确的方法,比自定义视图的灵活性更强。
例:
//设置文字内容
-(UILabel )AddLabelWithFrame:(CGRect)frame LabelText:(NSString )text;
//设置文字内容加字体
-(UILabel )AddLabelWithFrame:(CGRect)frame LabelText:(NSString )text LabelFont:(UIFont *)font;
//设置文字加颜色
-(UILabel )AddLabelWithFrame:(CGRect)frame LabelText:(NSString )text LabelColor:(UIColor *)color;
-(UILabel )AddLabelWithFrame:(CGRect)frame LabelText:(NSString )text{
UILabel *label = [[UILabel alloc]initWithFrame:frame];
label.text = text;
[self addSubview: label];
return label;
}
//设置文字内容加字体
-(UILabel )AddLabelWithFrame:(CGRect)frame LabelText:(NSString )text LabelFont:(UIFont *)font{
UILabel * la = [self AddLabelWithFrame:frame LabelText:text];
la.font = font;
[self addSubview: la];
return la;
}
//设置文字加颜色
-(UILabel*)AddLabelWithFrame:(CGRect)frame LabelText:(NSString )text LabelColor:(UIColor )color{
UILabel * la = [self AddLabelWithFrame:frame LabelText:text];
la.textColor = color;
[self addSubview: la];
return la;
}
// 创建用户名及输入框
self.nameLabel = [self AddLabelWithFrame:CGRectMake(30, 30, 150, 50) LabelText:@”用户名” ];
相关文章推荐
- flex 控件的重要属性
- Delphi控件ListView的属性及使用方法详解
- web下载的ActiveX控件自动更新
- WinForm实现按名称递归查找控件的方法
- C#中父窗口和子窗口之间控件互操作实例
- Android编程之Button控件用法实例分析
- Android控件之CheckBox、RadioButton用法实例分析
- MFC中动态创建控件以及事件响应实现方法
- WinForm自定义函数FindControl实现按名称查找控件
- Android控件之ProgressBar用法实例分析
- 介绍php设计模式中的工厂模式
- WinForm拖拽控件生成副本的解决方法
- ASP.NET动态添加用户控件的方法
- asp.net 简单工厂模式和工厂方法模式之论述
- ASP.NET的HtmlForm控件学习及Post与Get的区别概述
- WinForm实现移除控件某个事件的方法
- 深入理解JavaScript系列(28):设计模式之工厂模式详解
- js简单工厂模式用法实例
- javascript 模式设计之工厂模式详细说明
- C#分屏控件用法实例