当前位置:首页 > 操作系统 > Ios

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

技术分享 技术分享

            //
            //
              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;
@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;
}
@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];
        
        
        NSBundle *rootBoundle = [NSBundle mainBundle];
        CZAppView *appview = [[rootBoundle loadNibNamed:@"CZAppView" owner:nil options:nil ] lastObject];
        
        
        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

 

原文:http://www.cnblogs.com/zhuyaguang/p/4694138.html


【说明】本文章由站长整理发布,文章内容不代表本站观点,如文中有侵权行为,请与本站客服联系(QQ:254677821)!