// // 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