首页 > 移动平台 > 详细

IOS中使用.xib文件封装一个自定义View

时间:2015-04-20 00:08:44      阅读:227      评论:0      收藏:0      [点我收藏+]

1.新建一个继承UIView的自定义view,假设类名叫做 MyAppVew

#import <UIKit/UIKit.h>
@class MyApp;

@interface MyAppView : UIView

@property(strong,nonatomic) MyApp*app;

+(instancetype)appView;
@end

MyAppView.h

#import "MyAppView.h"
#import "MyApp.h"


@interface MyAppView ()

@property (weak, nonatomic) IBOutlet UIImageView *iconView;
@property (weak,nonatomic) IBOutlet UILabel *nameLable;

@end

@implementation MyAppView




-(void)setApp:(MyApp *) app
{
    _app=app;
    self.iconView.image=[UIImage imageNamed:app.icon];
    self.nameLable.text=app.name;
    //NSLog(@"%@", app.icon);
}

+(instancetype) appView{
    
    NSBundle *bundle=[NSBundle mainBundle];
    NSArray *objs=[bundle loadNibNamed:@"AppInfoView" owner:nil options:nil];
    return [objs lastObject];

}

+(instancetype) appViewWithApp:(MyApp *)app{
    MyAppView *appView=[self appView];
    appView.app=app;
    return appView;
}


@end

 

2.新建一个MyAppVIew.xib文件来描述MyAppView内部结构

技术分享

3.修改UIView的类型为MyAppView类型

技术分享

4.将内部的子控件跟MyAppView进行属性连线

技术分享

5.MyAppView提供一个模型属性

@interface MyAppView ()

 

@property (weak, nonatomic) IBOutlet UIImageView *iconView;

@property (weak,nonatomic) IBOutlet UILabel *nameLable;

 

 

6.重写模型属性的set方法,因为set方法中可以拿到外界传递的模型数据

 

-(void)setApp:(MyApp *) app
{
    _app=app;
    self.iconView.image=[UIImage imageNamed:app.icon];
    self.nameLable.text=app.name;
    //NSLog(@"%@", app.icon);
}

 

7.把模型数据拆开,分别设置数据到对应的子控件中

 

8.补充:提供一个创建MyAppView的类方法,将读取的.xib文件的代码屏蔽起来

 

+(instancetype) appView{
    
    NSBundle *bundle=[NSBundle mainBundle];
    NSArray *objs=[bundle loadNibNamed:@"AppInfoView" owner:nil options:nil];
    return [objs lastObject];

}

+(instancetype) appViewWithApp:(MyApp *)app{
    MyAppView *appView=[self appView];
    appView.app=app;
    return appView;
}

通过封装数据,对mvc有了初步认识。

IOS中使用.xib文件封装一个自定义View

原文:http://www.cnblogs.com/fxiaoquan/p/4440003.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!