• Image browser(demo15.03.14)


    这是一个图片浏览的程序,是传智公开课的一个demo

    代码如下

    //
    //  ViewController.m
    //  ImageBroswer
    //
    //  Created by xin on 15-3-12.
    //  Copyright (c) 2015年 Jackey. All rights reserved.
    //
    
    #import "ViewController.h"
    
    @interface ViewController ()
    //序号标签
    @property (nonatomic,strong) UILabel *noLabel;
    //图片
    @property (nonatomic,strong) UIImageView *icon;
    //图片描述
    @property (nonatomic,strong) UILabel *descriptionLabel;
    //左边按钮
    @property (nonatomic,strong) UIButton *leftButton;
    //右边按钮
    @property (nonatomic,strong) UIButton *rightButton;
    
    //image index
    @property (nonatomic,assign) int index;//不带星号 assign
    
    @property (nonatomic,strong) NSArray *array;
    //@property
    // 1 setter getter
    // 2 带下划线的成员变量
    @end
    
    @implementation ViewController
    
    //array getter
    -(NSArray *)array{
        //只有第一次调用getter的时候才会执行
        //其他时候直接返回
        if(_array==nil){
            NSDictionary *dic1 = @{@"name":@"biaoqingdi",@"desc":@"表情"};
            NSDictionary *dic2 = @{@"name":@"bingli",@"desc":@"病例"};
            NSDictionary *dic3 = @{@"name":@"chiniupa",@"desc":@"吃牛扒"};
            NSDictionary *dic4 = @{@"name":@"danteng",@"desc":@"蛋疼"};
            NSDictionary *dic5 = @{@"name":@"wangba",@"desc":@"王八"};
            
            _array = @[dic1,dic2,dic3,dic4,dic5];
        }
        return _array;
    }
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
        
        //标签描述
        UILabel *label = [[UILabel alloc]initWithFrame:CGRectMake(0, 20, 320, 40)];
        //label.text = @"1/5";
        label.textAlignment = NSTextAlignmentCenter;
        [self.view addSubview:label];
        self.noLabel = label;
        
        //图片
        UIImageView *imageView = [[UIImageView alloc]initWithFrame:CGRectMake(60, 70, 200, 200)];
        //imageView.image = [UIImage imageNamed:@"biaoqingdi"];
        [self.view addSubview:imageView];
        self.icon = imageView;
        
        //图片描述
        UILabel *iconLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 300, 320, 80)];
        //iconLabel.text = @"什么表情都弱爆了";
        iconLabel.textAlignment = NSTextAlignmentCenter;
        [self.view addSubview:iconLabel];
        self.descriptionLabel = iconLabel;
        
        //left icon
        UIButton *leftBtn = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 40, 40)];
        leftBtn.center = CGPointMake(self.icon.frame.origin.x/2, self.icon.center.y);
        [leftBtn setBackgroundImage:[UIImage imageNamed:@"left_normal"] forState:UIControlStateNormal];
        [self.view addSubview:leftBtn];
        [leftBtn addTarget:self action:@selector(leftClick) forControlEvents:UIControlEventTouchUpInside];
        self.leftButton = leftBtn;
        
        
        //right btn
        UIButton *rightBtn = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 40, 40)];
        rightBtn.center = CGPointMake(self.view.frame.size.width- self.icon.frame.origin.x/2, self.icon.center.y);
        [rightBtn setBackgroundImage:[UIImage imageNamed:@"right_normal"] forState:UIControlStateNormal];
        [self.view addSubview:rightBtn];
        [rightBtn addTarget:self action:@selector(rightClick) forControlEvents:UIControlEventTouchUpInside];
        self.rightButton = rightBtn;
        
        [self changeImage];
    }
    
    - (void)didReceiveMemoryWarning {
        [super didReceiveMemoryWarning];
        // Dispose of any resources that can be recreated.
    }
    /** 改变图像数据 */
    -(void)changeImage{
        
        self.noLabel.text = [NSString stringWithFormat:@"%d/%d",self.index+1,5];
        self.icon.image = [UIImage imageNamed:self.array[self.index][@"name"]];
        self.descriptionLabel.text = self.array[self.index][@"desc"];
        
        self.rightButton.enabled = (self.index !=4);
        self.leftButton.enabled = (self.index!=0);
        
    }
    /** 左边按钮 */
    -(void)leftClick{
        NSLog(@"left");
        self.index--;
        [self changeImage];
    }
    -(void)rightClick{
        NSLog(@"right");
        self.index++;
        [self changeImage];
    }
    
    @end
    

    优化代码,使用懒加载

    //
    //  ViewController.m
    //  ImageBroswer
    //
    //  Created by xin on 15-3-12.
    //  Copyright (c) 2015年 Jackey. All rights reserved.
    //
    
    #import "ViewController.h"
    
    @interface ViewController ()
    //序号标签
    @property (nonatomic,strong) UILabel *noLabel;
    //图片
    @property (nonatomic,strong) UIImageView *icon;
    //图片描述
    @property (nonatomic,strong) UILabel *descriptionLabel;
    //左边按钮
    @property (nonatomic,strong) UIButton *leftButton;
    //右边按钮
    @property (nonatomic,strong) UIButton *rightButton;
    
    //image index
    @property (nonatomic,assign) int index;//不带星号 assign
    
    @property (nonatomic,strong) NSArray *array;
    //@property
    // 1 setter getter
    // 2 带下划线的成员变量
    @end
    
    @implementation ViewController
    
    //array getter
    -(NSArray *)array{
        //只有第一次调用getter的时候才会执行
        //其他时候直接返回
        if(_array==nil){
            NSString *path = [[NSBundle mainBundle] pathForResource:@"ImageData" ofType:@"plist"];
            _array= [NSArray arrayWithContentsOfFile:path];
        }
        return _array;
    }
    
    -(UILabel *)noLabel{
        if(_noLabel==nil){
            _noLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 20, 320, 40)];
            _noLabel.textAlignment = NSTextAlignmentCenter;
            [self.view addSubview:_noLabel];
        }
        return _noLabel;
    }
    
    -(UIImageView *)icon{
        if(_icon==nil){
            _icon = [[UIImageView alloc]initWithFrame:CGRectMake(60, 70, 200, 200)];
            [self.view addSubview:_icon];
        }
        return _icon;
    }
    
    -(UILabel *)descriptionLabel{
        if(_descriptionLabel==nil){
            _descriptionLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 300, 320, 80)];
            _descriptionLabel.numberOfLines = 0;
            _descriptionLabel.textAlignment = NSTextAlignmentCenter;
            [self.view addSubview:_descriptionLabel];
        }
        return _descriptionLabel;
    }
    
    -(UIButton *)leftButton{
        if(_leftButton==nil){
            _leftButton = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 40, 40)];
            _leftButton.center = CGPointMake(self.icon.frame.origin.x/2, self.icon.center.y);
            [_leftButton setBackgroundImage:[UIImage imageNamed:@"left_normal"] forState:UIControlStateNormal];
            [self.view addSubview:_leftButton];
            [_leftButton addTarget:self action:@selector(leftClick) forControlEvents:UIControlEventTouchUpInside];
    
        }
        return _leftButton;
    }
    
    -(UIButton *)rightButton{
        if(!_rightButton){
            _rightButton = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 40, 40)];
            _rightButton.center = CGPointMake(self.view.frame.size.width- self.icon.frame.origin.x/2, self.icon.center.y);
            [_rightButton setBackgroundImage:[UIImage imageNamed:@"right_normal"] forState:UIControlStateNormal];
            [self.view addSubview:_rightButton];
            [_rightButton addTarget:self action:@selector(rightClick) forControlEvents:UIControlEventTouchUpInside];
    
        }
        return _rightButton;
    }
    
    - (void)viewDidLoad {
        [super viewDidLoad];
        // Do any additional setup after loading the view, typically from a nib.
    
        [self changeImage];
    }
    
    /** 改变图像数据 */
    -(void)changeImage{
        
        [self.noLabel setText:[NSString stringWithFormat:@"%d/%d",self.index+1,5]];
        [self.icon setImage:[UIImage imageNamed:self.array[self.index][@"name"]]];
        [self.descriptionLabel setText:self.array[self.index][@"desc"]];
        [self.rightButton setEnabled:(self.index!=4)];
        [self.leftButton setEnabled:(self.index!=0)];
        
    }
    /** 左边按钮 */
    -(void)leftClick{
        NSLog(@"left");
        self.index--;
        [self changeImage];
    }
    -(void)rightClick{
        NSLog(@"right");
        self.index++;
        [self changeImage];
    }
    
    @end
    

      

      

  • 相关阅读:
    申港集中运营平台Linux测试环境架构搭建
    收获,不止oracle
    Oracle函数
    Apache+php安装和配置 windows
    mysql for windows(服务器)上的配置安装--实例
    软件工程实践总结--爬山成长
    Alpha版本十天冲刺——Day 8
    Alpha版本十天冲刺——Day 2
    软件产品案例分析--K米
    第二次结对编程作业——毕设导师智能匹配
  • 原文地址:https://www.cnblogs.com/lihaozhou/p/4337178.html
Copyright © 2020-2023  润新知