自定义视图
2015-02-27 11:58
134 查看
自定义视图也是iPhone界面的一种自定义的控件,所谓的自定义视图就是根据自己的需求将一些最基本的控件组合起来,形成一个可以重复使用的小视图,使用时与基本控件使用方法相同,但是节省了很多资源.同时由于一些控件满足不了需求,可以自定义控件,增加一些原来没有的功能.
下面是一个自定义的登录界面:
一般的登陆界面是一个UILabel加一个UITextField作为一行,来进行界面的显示和数据的输入,而且注册界面也是这样的,所以自定义一个UILabel加一个UITextField的视图非常有必要.
自定义视图
LTView.h
//定义一个UILabel,一个UITextField
@property(nonatomic,
retain, readonly)
UILabel *label;
@property(nonatomic,
retain, readonly)
UITextField *field;
//自定义初始化方法,增加参数
- (id)initWithFrame:(CGRect)frame
text:(NSString *)text
textField:(NSString *)textField;
LTView.m
//
在初始化方法中,进行UILabel和UITextField的初始化
- (id)initWithFrame:(CGRect)frame
text:(NSString *)text
textField:(NSString *)textField
{
self = [super
initWithFrame:frame];
if (self) {
[self
setBackgroundColor:[UIColor
redColor]];
_label = [[UILabel
alloc] initWithFrame:CGRectMake(0,
0, frame.size.width /
3.0, self.frame.size.height)];
[_label
setBackgroundColor:[UIColor
greenColor]];
_label.textAlignment =
NSTextAlignmentCenter;
_label.text = text;
[self
addSubview:_label];
[_label
release];
_field = [[UITextField
alloc]
initWithFrame:CGRectMake(_label.frame.size.width,
0, self.frame.size.width
- _label.frame.size.width,
self.frame.size.height)];
[_field
setBackgroundColor:[UIColor
yellowColor]];
_field.textAlignment =
NSTextAlignmentCenter;
_field.borderStyle =
UITextBorderStyleRoundedRect;
_field.placeholder = textField;
[self
addSubview:_field];
[_field
release];
}
return
self;
}
调用自定义视图:
#pragma mark -
#pragma mark 创建自定义视图
- (void)createLTView
{
// 根据需求输入不同的参数,显示界面
LTView *ltView = [[LTView
alloc] initWithFrame:CGRectMake(0,
50, self.window.frame.size.width,
40) text:@"用户名"
textField:@"请输入用户名"];
ltView.label.textColor = [UIColor
redColor];
[self.window
addSubview:ltView];
[ltView
release];
LTView *bView = [[LTView
alloc] initWithFrame:CGRectMake(0,
100, self.window.frame.size.width,
40) text:@"密码"
textField:@"请输入密码"];
[self.window
addSubview:bView];
[bView
release];
}
效果图:
自定义视图最大的优点就是可以根据需求进行不同基本控件组合来进行需求的实现,不用根据屏幕的改变来进行坐标的调整,所有的修改只需在自定义视图的.m文件中进行修改,省时省力.
下面是一个自定义的登录界面:
一般的登陆界面是一个UILabel加一个UITextField作为一行,来进行界面的显示和数据的输入,而且注册界面也是这样的,所以自定义一个UILabel加一个UITextField的视图非常有必要.
自定义视图
LTView.h
//定义一个UILabel,一个UITextField
@property(nonatomic,
retain, readonly)
UILabel *label;
@property(nonatomic,
retain, readonly)
UITextField *field;
//自定义初始化方法,增加参数
- (id)initWithFrame:(CGRect)frame
text:(NSString *)text
textField:(NSString *)textField;
LTView.m
//
在初始化方法中,进行UILabel和UITextField的初始化
- (id)initWithFrame:(CGRect)frame
text:(NSString *)text
textField:(NSString *)textField
{
self = [super
initWithFrame:frame];
if (self) {
[self
setBackgroundColor:[UIColor
redColor]];
_label = [[UILabel
alloc] initWithFrame:CGRectMake(0,
0, frame.size.width /
3.0, self.frame.size.height)];
[_label
setBackgroundColor:[UIColor
greenColor]];
_label.textAlignment =
NSTextAlignmentCenter;
_label.text = text;
[self
addSubview:_label];
[_label
release];
_field = [[UITextField
alloc]
initWithFrame:CGRectMake(_label.frame.size.width,
0, self.frame.size.width
- _label.frame.size.width,
self.frame.size.height)];
[_field
setBackgroundColor:[UIColor
yellowColor]];
_field.textAlignment =
NSTextAlignmentCenter;
_field.borderStyle =
UITextBorderStyleRoundedRect;
_field.placeholder = textField;
[self
addSubview:_field];
[_field
release];
}
return
self;
}
调用自定义视图:
#pragma mark -
#pragma mark 创建自定义视图
- (void)createLTView
{
// 根据需求输入不同的参数,显示界面
LTView *ltView = [[LTView
alloc] initWithFrame:CGRectMake(0,
50, self.window.frame.size.width,
40) text:@"用户名"
textField:@"请输入用户名"];
ltView.label.textColor = [UIColor
redColor];
[self.window
addSubview:ltView];
[ltView
release];
LTView *bView = [[LTView
alloc] initWithFrame:CGRectMake(0,
100, self.window.frame.size.width,
40) text:@"密码"
textField:@"请输入密码"];
[self.window
addSubview:bView];
[bView
release];
}
效果图:
自定义视图最大的优点就是可以根据需求进行不同基本控件组合来进行需求的实现,不用根据屏幕的改变来进行坐标的调整,所有的修改只需在自定义视图的.m文件中进行修改,省时省力.
相关文章推荐
- Yii视图操作之自定义分页实现方法
- Qt 之模型/视图(自定义按钮)
- 列表视图自定义适配器
- 【自定义视图控件】入门篇----继承View以及主要的函数
- 在zf2 中 使用自定义视图助手
- Material Design(十一)--CoordinatorLayout和自定义视图
- UIKIt框架-自定义视图-瀑布流
- Swift 百度地图自定义弹出视图
- 浅谈UIViewController 使用-addChildViewController自定义视图控制器
- Android中自定义Toast视图和修改显示位置
- 添加自定义的View视图类(自定义一个进度条)
- 如何自定义View视图控件案例开发(一)
- 安卓学习笔记---完美解决Android的WebView加载失败(404,500),显示的自定义视图
- AndroidUI 视图动画-自定义动画效果 (Animation)
- Android自定义视图
- spring视图解析——自定义解析器实例
- Android自定义视图(一):带下划线的TextView
- 论坛源码推荐(3月5日):高度可自定义弹出视图 Facebook Paper发光字体效果
- CLR自定义.NET控件制作(3)——自定义视图控件
- Creating a View Class 创建自定义视图