码迷,mamicode.com
首页 > 其他好文 > 详细

自定义View的两种方式

时间:2016-09-07 22:29:40      阅读:126      评论:0      收藏:0      [点我收藏+]

标签:

(一)xib自定义view

1.思路

1)首先创建AppView类是,勾选上xib,就会创建出AppView.h,AppView.m,AppView.xib三个文件

2)先在AppView.xib文件上拖拽相应的控件,并进行适配

3)同样在AppView.h文件中,提供一个类方法创建AppView对象,并添加一个数据模型属性,用于向AppView传递模型

4)在AppView.m文件中,实现类方法,并在数据模型的set方法中实现对成员view内容的设置更新,将需要用到的空间属性通过拖线到.m文件中

2.关键代码

技术分享
 1 #import <UIKit/UIKit.h>
 2 
 3 @class MJApp;
 4 
 5 @interface MJAppView : UIView
 6 
 7 /**
 8  *  模型数据
 9  */
10 @property (nonatomic, strong) MJApp *app;
11 
12 + (instancetype)appView;
13 
14 /**
15  *  通过模型数据来创建一个view
16  */
17 + (instancetype)appViewWithApp:(MJApp *)app;
18 
19 @end
AppView.h
技术分享
 1 #import "MJAppView.h"
 2 #import "MJApp.h"
 3 
 4 @interface MJAppView()
 5 @property (weak, nonatomic) IBOutlet UIImageView *iconView;
 6 @property (weak, nonatomic) IBOutlet UILabel *nameLabel;
 7 @end
 8 
 9 @implementation MJAppView
10 //先从xib中读取出相应布局,在调用模型的set方法,设置
11 + (instancetype)appViewWithApp:(MJApp *)app
12 {
13     NSBundle *bundle = [NSBundle mainBundle];
14     // 读取xib文件(会创建xib中的描述的所有对象,并且按顺序放到数组中返回)
15     NSArray *objs = [bundle loadNibNamed:@"MJAppView" owner:nil options:nil];
16     MJAppView *appView = [objs lastObject];
17     appView.app = app;
18     return appView;
19 }
20 
21 + (instancetype)appView
22 {
23     return [self appViewWithApp:nil];
24 }
25 
26 - (void)setApp:(MJApp *)app
27 {
28     _app = app;
29     
30     // 1.设置图标
31     self.iconView.image = [UIImage imageNamed:app.icon];
32     
33     // 2.设置名称
34     self.nameLabel.text = app.name;
35 }
36 
37 @end
appView.m

在UIViewController中,直接利用appView的类方法即可创建

        MJAppView *appView = [MJAppView appViewWithApp:self.apps[index]];

(二)纯代码实现自定义view

1.思路

1)同样可以在view.m方法中重写initWithFrame:(CGrect)frame这个方法,在这个方法中主要是对一些新的内容控件的添加

2)在数据模型属性的set方法中对内容控件进行设置,以及空间的frame设置

3)在- (void)willMoveToSuperView:(UIView *)newSuperview,这个方法中实现自身frame的设置

2.关键代码

 

自定义View的两种方式

标签:

原文地址:http://www.cnblogs.com/2832527467xuxia/p/5851214.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!