AppManager(demo16.03.15)

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

  

你可能感兴趣的:(manager)