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
  • 相关阅读:
    linux高可用集群(HA)原理详解
    【C#/WPF】修改图像的DPI、Resolution
    【C#】图像的变形/变换/扭曲。用Emgu或YLScsFreeTransform(FreeImageTransformation)或MagickImage
    【C#】遍历List列表的同时,移除访问到的元素
    【WPF】动态设置Binding的ConverterParameter转换器参数
    【SVN/Visual Studio】清除/更换AnkhSVN的用户登录信息
    【C#】允许泛型方法<T>返回空值Null
    【C#】时间日期格式转换:long和DateTime相互转换
    【C#/WPF】ListView的MVVM例子,及禁止拖动ListView的头部Header
    【C#/WPF】保存BitmapImage数据到文件中
  • 原文地址:https://www.cnblogs.com/zhuyaguang/p/4694138.html
Copyright © 2011-2022 走看看