zoukankan      html  css  js  c++  java
  • UI5_HomeWork

    //
    //  View.h
    //  UI5_HomeWork
    //
    //  Created by zhangxueming on 15/7/2.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    #import "DataModel.h"
    
    @interface View : UIView
    //构造视图
    - (id)initWithFrame:(CGRect)frame addTarget:(id)target action:(SEL)action;
    
    - (void)updateViewByModel:(DataModel *)model;
    
    
    @end
    
    
    
    
    //
    //  View.m
    //  UI5_HomeWork
    //
    //  Created by zhangxueming on 15/7/2.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import "View.h"
    
    @implementation View
    
    - (id)initWithFrame:(CGRect)frame addTarget:(id)target action:(SEL)action
    {
        self = [super init];
        if (self) {
            UIView *bgView = [[UIView alloc] initWithFrame:frame];
            bgView.backgroundColor = [UIColor cyanColor];
            CGFloat size = (frame.size.height-80)/12;
            for (int i=0; i<12; i++) {
                UILabel *label = [[UILabel alloc] initWithFrame:CGRectMake(0, size*i,50,size-10)];
                label.text = [NSString stringWithFormat:@"%d",i+1];
                label.backgroundColor = [UIColor grayColor];
                label.alpha = 0.8;
                label.textAlignment = NSTextAlignmentCenter;
                label.textColor = [UIColor redColor];
                [bgView addSubview:label];
                
                UIView *view = [[UIView alloc] initWithFrame:CGRectMake(50, size*i, 200, size-10)];
                view.tag = 200+i;
                view.backgroundColor = [UIColor blueColor];
                [bgView addSubview:view];
            }
            
            UIButton *btn = [UIButton buttonWithType:UIButtonTypeSystem];
            btn.frame = CGRectMake(100,frame.size.height-60,frame.size.width-200, 50);
            btn.backgroundColor = [UIColor yellowColor];
            [btn setTitle:@"NEXT" forState:UIControlStateNormal];
            
            [btn addTarget:target action:action forControlEvents:UIControlEventTouchUpInside];
            
            [bgView addSubview:btn];
            bgView.tag = 100;
            [self addSubview:bgView];
        }
        return self;
    }
    
    //根据数据模型修改视图宽度
    - (void)updateViewByModel:(DataModel *)model
    {
        UIView *bgView =(UIView *)[self viewWithTag:100];
        //NSLog(@"bgView = %@", bgView);
        for (int i=0; i<12; i++) {
            UIView *view = [bgView viewWithTag:200+i];
            CGRect frame = view.frame;
            frame.size.width = [model dataFromModelByIndex:i];
            view.frame = frame;
        }
    }
    
    @end
    //
    //  DataModel.h
    //  UI5_HomeWork
    //
    //  Created by zhangxueming on 15/7/2.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <Foundation/Foundation.h>
    
    @interface DataModel : NSObject
    {
        NSMutableArray *_dataArray;
    }
    
    - (id)init;
    - (void)updateModel;
    - (int)dataFromModelByIndex:(int)index;
    
    @end
    
    
    
    //
    //  DataModel.m
    //  UI5_HomeWork
    //
    //  Created by zhangxueming on 15/7/2.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import "DataModel.h"
    
    @implementation DataModel
    
    - (id)init
    {
        self = [super init];
        if (self) {
            _dataArray = [[NSMutableArray alloc] init];
            for (int i=0; i<12; i++) {
                [_dataArray addObject:[NSNumber numberWithInt:0]];
            }
        }
        return self;
    }
    
    //更新数据模型
    - (void)updateModel
    {
        for (int i=0; i<12; i++) {
            NSNumber *num = [NSNumber numberWithInt:arc4random()%300];
            [_dataArray replaceObjectAtIndex:i withObject:num];
        }
        NSLog(@"_dataArray = %@", _dataArray);
    }
    
    //获取指定位置视图的宽度
    
    - (int)dataFromModelByIndex:(int)index
    {
        return [[_dataArray objectAtIndex:index] intValue];
    }
    
    
    @end
    //
    //  ViewController.h
    //  UI5_HomeWork
    //
    //  Created by zhangxueming on 15/7/2.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import <UIKit/UIKit.h>
    
    @interface ViewController : UIViewController
    
    
    @end
    
    
    
    
    //
    //  ViewController.m
    //  UI5_HomeWork
    //
    //  Created by zhangxueming on 15/7/2.
    //  Copyright (c) 2015年 zhangxueming. All rights reserved.
    //
    
    #import "ViewController.h"
    #import "View.h"
    #import "DataModel.h"
    
    @interface ViewController ()
    {
        DataModel *_model;
        View *_view;
    }
    @end
    
    //MVC 设计模式
    //Model(数据模型)  提供View显示的数据
    //View (视图对象)  在View上显示模型数据
    //Controller (控制对象)
    
    @implementation ViewController
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
        [self creatModel];
        [self creatUI];
        [self btnRefreshView];
    }
    
    
    - (void)creatModel
    {
        _model = [[DataModel alloc] init];
    }
    
    - (void)creatUI
    {
        _view = [[View alloc] initWithFrame:CGRectMake(0, 20, self.view.frame.size.width, self.view.frame.size.height-100) addTarget:self action:@selector(btnRefreshView)];
        [self.view addSubview:_view];
    }
    
    //刷新视图
    - (void)btnRefreshView
    {
        [_model updateModel];
        [_view updateViewByModel:_model];
    }
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    
    @end
  • 相关阅读:
    部署时,出现用户代码未处理 System.Security.Cryptography.CryptographicException 错误解决方法
    sqlserver学习笔记(三)—— 为数据库添加新的用户
    [.Net MVC] Win7下IIS部署
    CSS的4种引入方式及优先级
    阿里巴巴图标库全部下载
    div的默认position值是静态的static
    阿里巴巴图标库iconfont上传svg后,显示不了图片
    ext.net单元格内容换行显示
    WEB内容换行
    SQL修改日期类型字段为字符串类型
  • 原文地址:https://www.cnblogs.com/0515offer/p/4638474.html
Copyright © 2011-2022 走看看