iOS中自定义视图控件

来源:互联网 发布:分级基金套利软件 编辑:程序博客网 时间:2024/05/21 09:25
  

在平常的开发中,可能有些代码是有重复使用,或者在另外的一个项目中会有这样的功能段.这个时候我们就要把该功能段封装,打包,以便后续使用.


在调用的时候用有点类似于:有很多属性的类一样,在调用的使用要初始化,使用类的属性只需取出既可.



实现功能过程如下


1:首先创建一个控制器继承自UIView

2:创建一个uiviewcontroller,在.m把自定义uiview在头文件中引入

3:设置启动文件.



实现过程:

1:我们首先创建一个控制器logview继承自UIView,

例如我们的这个页面只显示个人的基本信息的时候,

我们就要在logview.h文件中把基本信息显示的label放入该文件中

/**

 *  姓名

 */

@property(nonatomic,retain)UILabel *usernames;


/**

 *  毕业学校名称

 */

@property(nonatomic,retain)UILabel *userschool;


 在logview.m文件中- (id)initWithFrame:(CGRect)frame的方法里实现具体属性

实现代码如下


- (id)initWithFrame:(CGRect)frame

{

    self = [super initWithFrame:frame];

    if (self) {

        self.usernames = [[UILabel alloc] initWithFrame:CGRectMake(50, 100, 100, 50)];

        self.usernames.backgroundColor = [UIColor redColor];


        self.userschool = [[UILabel alloc] initWithFrame:CGRectMake(50, 170, 100, 50)];

        self.userschool.backgroundColor = [UIColor grayColor];

        [self addSubview:self.usernames];

        [self addSubview:self.userschool];

    }

    return self;

}


2:创建一个uiviewcontroller,把自定义uiview在头文件中引入

 创建一个MainViewController继承自UIViewController.在该控制器的头文件中引入我们自定的UIView#import “logView.h”

//设置在初始化的时候和主屏幕一样大小

logView *login = [[logView alloc] initWithFrame:[UIScreen mainScreen].bounds];


    login.usernames.text = @"ddddddddd";

    login.userschool.text = @"ddfffffffffffffffffff";

         [self.view addSubview:login];



3:设置启动文件

3.1在appdelegate.m文件中引入头文件我们添加的自定义的控制器

#import “MainViewController.h"

3.2 设置启动的控制器页面

MainViewController *mvc = [[MainViewController alloc] init];

self.window.rootViewController = mvc;




在以后的开发中,我们可以把工程中的某一个某块单独抽出来,把他封装套自己的UIView中,形成自己的一个类库,在以后的开发中用到功能类似的时候可以直接把该UIView拖拽到工程中,在控制器中,引入头文件,在初始化该UIView,拿到该view的属性赋值就可以了.

0 0
原创粉丝点击