AppManager(demo16.03.15)
// // ViewController.m // AppManager // // Created by xin on 15-3-16. // Copyright (c) 2015年 Jackey. All rights reserved. // #import "ViewController.h" //1 get the data //2 draw the view @interface ViewController () // @property (nonatomic,strong) NSArray *appList; @end @implementation ViewController -(NSArray *)appList{ if(!_appList){ NSString *path = [[NSBundle mainBundle]pathForResource:@"app.plist" ofType:nil]; _appList = [[NSArray alloc]initWithContentsOfFile:path]; } return _appList; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. int totalCol = 3; CGFloat viewW = 80; CGFloat viewH = 90; CGFloat marginX = (self.view.bounds.size.width-viewW*totalCol)/(totalCol+1); CGFloat marginY =10; CGFloat startY = 20; //int count = self.appList.count; for(int i=0;i<self.appList.count;i++){ int row =i/totalCol; int col = i%totalCol; CGFloat x = marginX +(marginX+viewW)*col; CGFloat y =startY+ marginY +(marginY+viewH)*row; UIView *view = [[UIView alloc]initWithFrame:CGRectMake(x, y, viewW, viewH)]; //view.backgroundColor = [UIColor redColor]; [self.view addSubview:view]; //image UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, viewW, 50)]; //imageView.backgroundColor = [UIColor grayColor]; UIImage *image = [UIImage imageNamed:self.appList[i][@"icon"]]; imageView.image = image; //按照比例现实图像 imageView.contentMode = UIViewContentModeScaleAspectFit; [view addSubview: imageView]; //description UILabel *descriptionLabel = [[UILabel alloc]initWithFrame:CGRectMake(0,imageView.bounds.size.height, viewW, 20)]; //descriptionLabel.backgroundColor = [UIColor blackColor]; descriptionLabel.text = self.appList[i][@"name"]; descriptionLabel.font =[UIFont systemFontOfSize:12.0]; descriptionLabel.textAlignment = NSTextAlignmentCenter; [view addSubview:descriptionLabel]; //button UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; button.frame = CGRectMake(0, 70, viewW, 20); [button setTitle:@"下载" forState:UIControlStateNormal]; button.titleLabel.font = [UIFont systemFontOfSize:14.0]; //button.backgroundColor = [UIColor purpleColor]; [button setBackgroundImage:[UIImage imageNamed:@"buttongreen"] forState:UIControlStateNormal]; [button setBackgroundImage:[UIImage imageNamed:@"buttongreen_highlighted"] forState:UIControlStateHighlighted]; [view addSubview:button]; } } @end
添加按钮事件和动画
button.tag = i; [button addTarget:self action:@selector(downloadClick:) forControlEvents:UIControlEventTouchUpInside];
-(void)downloadClick:(UIButton *)button{ UILabel *lable = [[UILabel alloc]initWithFrame:CGRectMake(80, 400, 160, 40)]; lable.textAlignment = NSTextAlignmentCenter; lable.backgroundColor = [UIColor lightGrayColor]; NSDictionary *dict = self.appList[button.tag]; lable.text = [NSString stringWithFormat:@"下载%@完成",dict[@"name"]]; lable.font = [UIFont systemFontOfSize:13.0]; lable.alpha = 1.0; [self.view addSubview:lable]; //动画效果 //[UIView beginAnimations:nil context:nil]; //[UIView setAnimationDuration:1.0]; //lable.alpha = 1.0; //[UIView commitAnimations]; [UIView animateWithDuration:1.0 animations:^{ lable.alpha=0.0; } completion:^(BOOL finished) { [lable removeFromSuperview]; }]; }
优化:添加AppInfo class
// // AppInfo.h // AppManager // // Created by xin on 15-3-16. // Copyright (c) 2015年 Jackey. All rights reserved. // #import <Foundation/Foundation.h> @interface AppInfo : NSObject @property (nonatomic,copy) NSString *name; @property (nonatomic,copy) NSString *icon; -(id)initWithDict:(NSDictionary *)dict; @end //---------------------------- // // AppInfo.m // AppManager // // Created by xin on 15-3-16. // Copyright (c) 2015年 Jackey. All rights reserved. // #import "AppInfo.h" @implementation AppInfo - (instancetype)initWithDict:(NSDictionary *)dict { self = [super init]; if (self) { self.name = dict[@"name"]; self.icon = dict[@"icon"]; } return self; } @end
// // ViewController.m // AppManager // // Created by xin on 15-3-16. // Copyright (c) 2015年 Jackey. All rights reserved. // #import "ViewController.h" #import "AppInfo.h" //1 get the data //2 draw the view @interface ViewController () // @property (nonatomic,strong) NSArray *appList; @end @implementation ViewController -(NSArray *)appList{ if(!_appList){ NSString *path = [[NSBundle mainBundle]pathForResource:@"app.plist" ofType:nil]; NSArray *array = [[NSArray alloc]initWithContentsOfFile:path]; NSMutableArray *arrayM = [NSMutableArray array]; for (NSDictionary *dict in array) { AppInfo *info = [[AppInfo alloc]initWithDict:dict]; [arrayM addObject:info]; } _appList = arrayM; } return _appList; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. int totalCol = 3; CGFloat viewW = 80; CGFloat viewH = 90; CGFloat marginX = (self.view.bounds.size.width-viewW*totalCol)/(totalCol+1); CGFloat marginY =10; CGFloat startY = 20; //int count = self.appList.count; for(int i=0;i<self.appList.count;i++){ int row =i/totalCol; int col = i%totalCol; CGFloat x = marginX +(marginX+viewW)*col; CGFloat y =startY+ marginY +(marginY+viewH)*row; UIView *view = [[UIView alloc]initWithFrame:CGRectMake(x, y, viewW, viewH)]; //view.backgroundColor = [UIColor redColor]; [self.view addSubview:view]; AppInfo *info = self.appList[i]; //image UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, viewW, 50)]; //imageView.backgroundColor = [UIColor grayColor]; UIImage *image = [UIImage imageNamed:info.icon]; imageView.image = image; //按照比例现实图像 imageView.contentMode = UIViewContentModeScaleAspectFit; [view addSubview: imageView]; //description UILabel *descriptionLabel = [[UILabel alloc]initWithFrame:CGRectMake(0,imageView.bounds.size.height, viewW, 20)]; //descriptionLabel.backgroundColor = [UIColor blackColor]; descriptionLabel.text = info.name; descriptionLabel.font =[UIFont systemFontOfSize:12.0]; descriptionLabel.textAlignment = NSTextAlignmentCenter; [view addSubview:descriptionLabel]; //button UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; button.frame = CGRectMake(0, 70, viewW, 20); [button setTitle:@"下载" forState:UIControlStateNormal]; button.titleLabel.font = [UIFont systemFontOfSize:14.0]; //button.backgroundColor = [UIColor purpleColor]; [button setBackgroundImage:[UIImage imageNamed:@"buttongreen"] forState:UIControlStateNormal]; [button setBackgroundImage:[UIImage imageNamed:@"buttongreen_highlighted"] forState:UIControlStateHighlighted]; [view addSubview:button]; button.tag = i; [button addTarget:self action:@selector(downloadClick:) forControlEvents:UIControlEventTouchUpInside]; } } -(void)downloadClick:(UIButton *)button{ UILabel *lable = [[UILabel alloc]initWithFrame:CGRectMake(80, 400, 160, 40)]; lable.textAlignment = NSTextAlignmentCenter; lable.backgroundColor = [UIColor lightGrayColor]; AppInfo *info = self.appList[button.tag]; lable.text = [NSString stringWithFormat:@"下载%@完成",info.name]; lable.font = [UIFont systemFontOfSize:13.0]; lable.alpha = 1.0; [self.view addSubview:lable]; //动画效果 //[UIView beginAnimations:nil context:nil]; //[UIView setAnimationDuration:1.0]; //lable.alpha = 1.0; //[UIView commitAnimations]; [UIView animateWithDuration:1.0 animations:^{ lable.alpha=0.0; } completion:^(BOOL finished) { [lable removeFromSuperview]; }]; } @end
继续优化model
// // AppInfo.h // AppManager // // Created by xin on 15-3-16. // Copyright (c) 2015年 Jackey. All rights reserved. // #import <Foundation/Foundation.h> #import <UIKit/UIKit.h> @interface AppInfo : NSObject @property (nonatomic,copy) NSString *name; @property (nonatomic,copy) NSString *icon; //只生成getter方法,同时没有成员变量 @property (nonatomic,strong,readonly) UIImage *image; -(id)initWithDict:(NSDictionary *)dict; @end //----- // // AppInfo.m // AppManager // // Created by xin on 15-3-16. // Copyright (c) 2015年 Jackey. All rights reserved. // #import "AppInfo.h" @interface AppInfo(){ UIImage *_image; } @end @implementation AppInfo - (instancetype)initWithDict:(NSDictionary *)dict { self = [super init]; if (self) { self.name = dict[@"name"]; self.icon = dict[@"icon"]; } return self; } -(UIImage *)image{ if(!_image){ _image = [UIImage imageNamed:self.icon]; } return _image; } @end
// // ViewController.m // AppManager // // Created by xin on 15-3-16. // Copyright (c) 2015年 Jackey. All rights reserved. // #import "ViewController.h" #import "AppInfo.h" //1 get the data //2 draw the view @interface ViewController () // @property (nonatomic,strong) NSArray *appList; @end @implementation ViewController -(NSArray *)appList{ if(!_appList){ NSString *path = [[NSBundle mainBundle]pathForResource:@"app.plist" ofType:nil]; NSArray *array = [[NSArray alloc]initWithContentsOfFile:path]; NSMutableArray *arrayM = [NSMutableArray array]; for (NSDictionary *dict in array) { AppInfo *info = [[AppInfo alloc]initWithDict:dict]; [arrayM addObject:info]; } _appList = arrayM; } return _appList; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. int totalCol = 3; CGFloat viewW = 80; CGFloat viewH = 90; CGFloat marginX = (self.view.bounds.size.width-viewW*totalCol)/(totalCol+1); CGFloat marginY =10; CGFloat startY = 20; //int count = self.appList.count; for(int i=0;i<self.appList.count;i++){ int row =i/totalCol; int col = i%totalCol; CGFloat x = marginX +(marginX+viewW)*col; CGFloat y =startY+ marginY +(marginY+viewH)*row; UIView *view = [[UIView alloc]initWithFrame:CGRectMake(x, y, viewW, viewH)]; //view.backgroundColor = [UIColor redColor]; [self.view addSubview:view]; AppInfo *info = self.appList[i]; //image UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(0, 0, viewW, 50)]; //imageView.backgroundColor = [UIColor grayColor]; //UIImage *image = [UIImage imageNamed:info.icon]; imageView.image = info.image; //按照比例现实图像 imageView.contentMode = UIViewContentModeScaleAspectFit; [view addSubview: imageView]; //description UILabel *descriptionLabel = [[UILabel alloc]initWithFrame:CGRectMake(0,imageView.bounds.size.height, viewW, 20)]; //descriptionLabel.backgroundColor = [UIColor blackColor]; descriptionLabel.text = info.name; descriptionLabel.font =[UIFont systemFontOfSize:12.0]; descriptionLabel.textAlignment = NSTextAlignmentCenter; [view addSubview:descriptionLabel]; //button UIButton *button = [UIButton buttonWithType:UIButtonTypeCustom]; button.frame = CGRectMake(0, 70, viewW, 20); [button setTitle:@"下载" forState:UIControlStateNormal]; button.titleLabel.font = [UIFont systemFontOfSize:14.0]; //button.backgroundColor = [UIColor purpleColor]; [button setBackgroundImage:[UIImage imageNamed:@"buttongreen"] forState:UIControlStateNormal]; [button setBackgroundImage:[UIImage imageNamed:@"buttongreen_highlighted"] forState:UIControlStateHighlighted]; [view addSubview:button]; button.tag = i; [button addTarget:self action:@selector(downloadClick:) forControlEvents:UIControlEventTouchUpInside]; } } -(void)downloadClick:(UIButton *)button{ UILabel *lable = [[UILabel alloc]initWithFrame:CGRectMake(80, 400, 160, 40)]; lable.textAlignment = NSTextAlignmentCenter; lable.backgroundColor = [UIColor lightGrayColor]; AppInfo *info = self.appList[button.tag]; lable.text = [NSString stringWithFormat:@"下载%@完成",info.name]; lable.font = [UIFont systemFontOfSize:13.0]; lable.alpha = 1.0; [self.view addSubview:lable]; //动画效果 //[UIView beginAnimations:nil context:nil]; //[UIView setAnimationDuration:1.0]; //lable.alpha = 1.0; //[UIView commitAnimations]; [UIView animateWithDuration:1.0 animations:^{ lable.alpha=0.0; } completion:^(BOOL finished) { [lable removeFromSuperview]; }]; } @end
加入工厂方法
// // AppInfo.m // AppManager // // Created by xin on 15-3-16. // Copyright (c) 2015年 Jackey. All rights reserved. // #import "AppInfo.h" @interface AppInfo(){ UIImage *_image; } @end @implementation AppInfo - (instancetype)initWithDict:(NSDictionary *)dict { self = [super init]; if (self) { self.name = dict[@"name"]; self.icon = dict[@"icon"]; } return self; } -(UIImage *)image{ if(!_image){ _image = [UIImage imageNamed:self.icon]; } return _image; } //工厂方法 +(instancetype)AppInfoInitWithDict:(NSDictionary *)dict{ return [[self alloc]initWithDict:dict]; } @end
-(NSArray *)appList{ if(!_appList){ NSString *path = [[NSBundle mainBundle]pathForResource:@"app.plist" ofType:nil]; NSArray *array = [[NSArray alloc]initWithContentsOfFile:path]; NSMutableArray *arrayM = [NSMutableArray array]; for (NSDictionary *dict in array) { //AppInfo *info = [AppInfo AppInfoInitWithDict:dict]; [arrayM addObject:[AppInfo AppInfoInitWithDict:dict]]; } _appList = arrayM; } return _appList; }
新建一个class继承UIView
配合使用XIB
// // AppInfoUIView.h // AppManager // // Created by xin on 15-3-17. // Copyright (c) 2015年 Jackey. All rights reserved. // #import <UIKit/UIKit.h> @interface AppInfoUIView : UIView @property (weak, nonatomic) IBOutlet UIImageView *iconImage; @property (weak, nonatomic) IBOutlet UILabel *descriptionLabel; @property (weak, nonatomic) IBOutlet UIButton *downloadBtn; @end // // AppInfoUIView.m // AppManager // // Created by xin on 15-3-17. // Copyright (c) 2015年 Jackey. All rights reserved. // #import "AppInfoUIView.h" @implementation AppInfoUIView /* // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affects performance during animation. - (void)drawRect:(CGRect)rect { // Drawing code } */ @end
// // ViewController.m // AppManager // // Created by xin on 15-3-16. // Copyright (c) 2015年 Jackey. All rights reserved. // #import "ViewController.h" #import "AppInfo.h" #import "AppInfoUIView.h" //1 get the data //2 draw the view @interface ViewController () // @property (nonatomic,strong) NSArray *appList; @end @implementation ViewController -(NSArray *)appList{ if(!_appList){ NSString *path = [[NSBundle mainBundle]pathForResource:@"app.plist" ofType:nil]; NSArray *array = [[NSArray alloc]initWithContentsOfFile:path]; NSMutableArray *arrayM = [NSMutableArray array]; for (NSDictionary *dict in array) { //AppInfo *info = [AppInfo AppInfoInitWithDict:dict]; [arrayM addObject:[AppInfo AppInfoInitWithDict:dict]]; } _appList = arrayM; } return _appList; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. int totalCol = 3; CGFloat viewW = 80; CGFloat viewH = 90; CGFloat marginX = (self.view.bounds.size.width-viewW*totalCol)/(totalCol+1); CGFloat marginY =10; CGFloat startY = 20; //int count = self.appList.count; for(int i=0;i<self.appList.count;i++){ int row =i/totalCol; int col = i%totalCol; CGFloat x = marginX +(marginX+viewW)*col; CGFloat y =startY+ marginY +(marginY+viewH)*row; //UIView *view = [[UIView alloc]initWithFrame:CGRectMake(x, y, viewW, viewH)]; //view.backgroundColor = [UIColor redColor]; NSArray *arr = [[NSBundle mainBundle]loadNibNamed:@"AppInfoView" owner:nil options:nil]; //UIView *view = [arr firstObject]; AppInfoUIView *view = [arr firstObject]; view.frame =CGRectMake(x, y, viewW, viewH); [self.view addSubview:view]; AppInfo *info = self.appList[i]; //image //UIImageView *imageView = (UIImageView *)[view viewWithTag:1];//view.subviews[0];//[[UIImageView alloc]initWithFrame:CGRectMake(0, 0, viewW, 50)]; //imageView.backgroundColor = [UIColor grayColor]; //UIImage *image = [UIImage imageNamed:info.icon]; //imageView.image = info.image; view.iconImage.image = info.image; //按照比例现实图像 //imageView.contentMode = UIViewContentModeScaleAspectFit; //[view addSubview: imageView]; //description //UILabel *descriptionLabel =(UILabel *)[view viewWithTag:2];//view.subviews[1]; //[[UILabel alloc]initWithFrame:CGRectMake(0,imageView.bounds.size.height, viewW, 20)]; //descriptionLabel.backgroundColor = [UIColor blackColor]; //descriptionLabel.text = info.name; view.descriptionLabel.text = info.name; //descriptionLabel.font =[UIFont systemFontOfSize:12.0]; //descriptionLabel.textAlignment = NSTextAlignmentCenter; //[view addSubview:descriptionLabel]; //button //UIButton *button =(UIButton *)[view viewWithTag:3];// view.subviews[2];//[UIButton buttonWithType:UIButtonTypeCustom]; //button.frame = CGRectMake(0, 70, viewW, 20); //[button setTitle:@"下载" forState:UIControlStateNormal]; //button.titleLabel.font = [UIFont systemFontOfSize:14.0]; //button.backgroundColor = [UIColor purpleColor]; //[button setBackgroundImage:[UIImage imageNamed:@"buttongreen"] forState:UIControlStateNormal]; //[button setBackgroundImage:[UIImage imageNamed:@"buttongreen_highlighted"] forState:UIControlStateHighlighted]; //[view addSubview:button]; view.downloadBtn.tag = i; [view.downloadBtn addTarget:self action:@selector(downloadClick:) forControlEvents:UIControlEventTouchUpInside]; } } -(void)downloadClick:(UIButton *)button{ UILabel *lable = [[UILabel alloc]initWithFrame:CGRectMake(80, 400, 160, 40)]; lable.textAlignment = NSTextAlignmentCenter; lable.backgroundColor = [UIColor lightGrayColor]; AppInfo *info = self.appList[button.tag]; lable.text = [NSString stringWithFormat:@"下载%@完成",info.name]; lable.font = [UIFont systemFontOfSize:13.0]; lable.alpha = 1.0; [self.view addSubview:lable]; //动画效果 //[UIView beginAnimations:nil context:nil]; //[UIView setAnimationDuration:1.0]; //lable.alpha = 1.0; //[UIView commitAnimations]; [UIView animateWithDuration:1.0 animations:^{ lable.alpha=0.0; } completion:^(BOOL finished) { [lable removeFromSuperview]; }]; } @end
最后:
// // AppInfo.h // AppManager // // Created by xin on 15-3-16. // Copyright (c) 2015年 Jackey. All rights reserved. // #import <Foundation/Foundation.h> #import <UIKit/UIKit.h> @interface AppInfo : NSObject @property (nonatomic,copy) NSString *name; @property (nonatomic,copy) NSString *icon; //只生成getter方法,同时没有成员变量 @property (nonatomic,strong,readonly) UIImage *image; -(id)initWithDict:(NSDictionary *)dict; +(instancetype)AppInfoInitWithDict:(NSDictionary *)dict; @end // // AppInfo.m // AppManager // // Created by xin on 15-3-16. // Copyright (c) 2015年 Jackey. All rights reserved. // #import "AppInfo.h" @interface AppInfo(){ UIImage *_image; } @end @implementation AppInfo - (instancetype)initWithDict:(NSDictionary *)dict { self = [super init]; if (self) { self.name = dict[@"name"]; self.icon = dict[@"icon"]; } return self; } -(UIImage *)image{ if(!_image){ _image = [UIImage imageNamed:self.icon]; } return _image; } //工厂方法 +(instancetype)AppInfoInitWithDict:(NSDictionary *)dict{ return [[self alloc]initWithDict:dict]; } @end
// // AppInfoUIView.h // AppManager // // Created by xin on 15-3-17. // Copyright (c) 2015年 Jackey. All rights reserved. // #import <UIKit/UIKit.h> #import "AppInfo.h" @interface AppInfoUIView : UIView +(instancetype)getXibView; +(instancetype)getXibViewWithDict:(AppInfo *)appInfo; @end // // AppInfoUIView.m // AppManager // // Created by xin on 15-3-17. // Copyright (c) 2015年 Jackey. All rights reserved. // #import "AppInfoUIView.h" @interface AppInfoUIView() @property (weak, nonatomic) IBOutlet UIImageView *iconImage; @property (weak, nonatomic) IBOutlet UILabel *descriptionLabel; @property (strong,nonatomic) AppInfo *appInfo; @end @implementation AppInfoUIView /* // Only override drawRect: if you perform custom drawing. // An empty implementation adversely affects performance during animation. - (void)drawRect:(CGRect)rect { // Drawing code } */ +(instancetype)getXibView{ NSArray *arr = [[NSBundle mainBundle]loadNibNamed:@"AppInfoView" owner:nil options:nil]; return [arr firstObject]; } +(instancetype)getXibViewWithDict:(AppInfo *)appInfo{ AppInfoUIView *view = [self getXibView]; view.appInfo = appInfo; return view; } -(void)setAppInfo:(AppInfo *)appInfo{ _appInfo = appInfo; self.iconImage.image = appInfo.image; self.descriptionLabel.text = appInfo.name; } - (IBAction)downloadBtn:(id)sender { UILabel *lable = [[UILabel alloc]initWithFrame:CGRectMake(80, 400, 160, 40)]; lable.textAlignment = NSTextAlignmentCenter; lable.backgroundColor = [UIColor lightGrayColor]; AppInfo *info = self.appInfo;//self.appList[button.tag]; lable.text = [NSString stringWithFormat:@"下载%@完成",info.name]; lable.font = [UIFont systemFontOfSize:13.0]; lable.alpha = 1.0; [self.superview addSubview:lable]; [UIView animateWithDuration:1.0 animations:^{ lable.alpha=0.0; } completion:^(BOOL finished) { [lable removeFromSuperview]; }]; } @end
// // ViewController.m // AppManager // // Created by xin on 15-3-16. // Copyright (c) 2015年 Jackey. All rights reserved. // #import "ViewController.h" #import "AppInfo.h" #import "AppInfoUIView.h" //1 get the data //2 draw the view @interface ViewController () @property (nonatomic,strong) NSArray *appList; @end @implementation ViewController -(NSArray *)appList{ if(!_appList){ NSString *path = [[NSBundle mainBundle]pathForResource:@"app.plist" ofType:nil]; NSArray *array = [[NSArray alloc]initWithContentsOfFile:path]; NSMutableArray *arrayM = [NSMutableArray array]; for (NSDictionary *dict in array) { [arrayM addObject:[AppInfo AppInfoInitWithDict:dict]]; } _appList = arrayM; } return _appList; } - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view, typically from a nib. int totalCol = 3; CGFloat viewW = 80; CGFloat viewH = 90; CGFloat marginX = (self.view.bounds.size.width-viewW*totalCol)/(totalCol+1); CGFloat marginY =10; CGFloat startY = 20; //int count = self.appList.count; for(int i=0;i<self.appList.count;i++){ int row =i/totalCol; int col = i%totalCol; CGFloat x = marginX +(marginX+viewW)*col; CGFloat y =startY+ marginY +(marginY+viewH)*row; AppInfoUIView *view = [AppInfoUIView getXibViewWithDict:self.appList[i]]; view.frame =CGRectMake(x, y, viewW, viewH); [self.view addSubview:view]; } } @end