zoukankan      html  css  js  c++  java
  • 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;

    + (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
  • 相关阅读:
    总账数据访问安全性控制(5)
    XML输出中文时,无法用xsl查看(XML文件不能正常显示、中文显示乱码)
    设计抗混叠滤波器的三大指导原则(转载)
    Verilog中变量位宽注意
    学习cordic算法所得(流水线结构、Verilog标准)
    傅里叶分析的理解
    转载:Allegro实用技巧之模块复用
    c语言学习之 辗转相除法求最大公约数
    c语言学习之 正序分解整数
    新博客开张
  • 原文地址:https://www.cnblogs.com/zhuyaguang/p/4694138.html
Copyright © 2011-2022 走看看