您的位置:首页 > 移动开发 > IOS开发

ios-利用xib重新写 应用管理

2015-08-01 15:13 369 查看




//
//  app.h
//  应用管理
//
//  Created by YaguangZhu on 15/7/31.
//  Copyright (c) 2015年 YaguangZhu. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface app : NSObject

@property (nonatomic,copy) NSString *miaoshu;
@property (nonatomic,copy) NSString *icon;

- (app *)initWithDict:(NSDictionary *)dict;
+ (app *)appwithDict:(NSDictionary *)dict;

@end


//
//  app.m
//  应用管理
//
//  Created by YaguangZhu on 15/7/31.
//  Copyright (c) 2015年 YaguangZhu. All rights reserved.
//

#import "app.h"

@implementation app

-(app *)initWithDict:(NSDictionary *)dict
{
if (self = [super init]) {
self.miaoshu = dict[@"miaoshu"];
self.icon = dict[@"icon"];
}
return self;
}
+ (app *)appwithDict:(NSDictionary *)dict
{
return [[self alloc] initWithDict:dict];
}
@end


//
//  CZAppView.h
//  应用管理
//
//  Created by YaguangZhu on 15/8/1.
//  Copyright (c) 2015年 YaguangZhu. All rights reserved.
//

#import <UIKit/UIKit.h>
@class app;
@interface CZAppView : UIView
@property (nonatomic,strong) app *model;

+ (instancetype)appView;

@end


//
//  CZAppView.m
//  应用管理
//
//  Created by YaguangZhu on 15/8/1.
//  Copyright (c) 2015年 YaguangZhu. All rights reserved.
//

#import "CZAppView.h"
#import "app.h"
@interface CZAppView ()

@property (weak, nonatomic) IBOutlet UIImageView *imgViewIcon;
@property (weak, nonatomic) IBOutlet UILabel *lblName;
@property (weak, nonatomic) IBOutlet UIButton *btnDownload;

@end
@implementation CZAppView

/*
// Only override drawRect: if you perform custom drawing.
// An empty implementation adversely affects performance during animation.
- (void)drawRect:(CGRect)rect {
// Drawing code
}
*/
- (void)setModel:(app *)model
{
_model = model;

self.imgViewIcon.image = [UIImage imageNamed:model.icon];
self.lblName.text = model.miaoshu;
}

+ (instancetype)appView


{


NSBundle *rootBoundle = [NSBundle mainBundle];


return [[rootBoundle loadNibNamed:@"CZAppView" owner:nil options:nil ] lastObject];


}

@end


//
//  ViewController.m
//  应用管理
//
//  Created by YaguangZhu on 15/7/31.
//  Copyright (c) 2015年 YaguangZhu. All rights reserved.
//

#import "ViewController.h"
#import "app.h"
#import "CZAppView.h"

@interface ViewController ()

@property (nonatomic,strong) NSArray *apps;

@end

@implementation ViewController
- (NSArray *)apps
{
if (_apps == nil) {
NSString *path = [[NSBundle mainBundle] pathForResource:@"app.plist" ofType:nil];

NSArray *array = [NSArray arrayWithContentsOfFile:path];

NSMutableArray *arrayModels = [NSMutableArray array];

for (NSDictionary *dict in array) {
app *model = [app appwithDict:dict];

// model.miaoshu = dict[@"miaoshu"];
// model.icon = dict[@"icon"];

[arrayModels addObject:model];
}
_apps =arrayModels;

}

return  _apps;

}

- (void)viewDidLoad {
[super viewDidLoad];
int colums =3;
CGFloat viewWidth = self.view.frame.size.width;

CGFloat appW = 75;
CGFloat appH = 90;
CGFloat marginTop = 30;
CGFloat maginX = (viewWidth - colums*appW)/ (colums+1);
CGFloat maginY = maginX;

for (int i=0;i<self.apps.count;i++)//9 = self.apps.count
{

app *appModel = self.apps[i];

//xib创建控件
//  NSBundle *rootBoundle = [NSBundle mainBundle];
// CZAppView *appview = [[rootBoundle loadNibNamed:@"CZAppView" owner:nil options:nil ] lastObject];
//封装下

CZAppView *appview = [CZAppView appView];

int colIdx = i % colums;
int rowIdx = i / colums;
CGFloat appX = maginX+ colIdx *(appW +maginX);
CGFloat appY = marginTop +rowIdx *(appH +maginY);
appview.frame = CGRectMake(appX, appY, appW, appH);

[self.view addSubview:appview];
// 用tag来给控件赋值
//        UIImageView *imgViewIcon =  (UIImageView *)[appview viewWithTag:1000];
//        imgViewIcon.image = [UIImage imageNamed:appModel.icon];
//
//        UILabel *lblName = (UILabel*)[appview viewWithTag:2000];
//        lblName.text = appModel.miaoshu;
//用自己创建一个类 然后拖拉控件来赋值
//        appview.imgViewIcon.image = [UIImage imageNamed:appModel.icon];
//        appview.lblName.text = appModel.miaoshu;

//以上不这样写说为了安全 和封装性好
appview.model = appModel;

}

}

- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}

@end
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: