黑马程序员技术交流社区

标题: 图片查看器 [打印本页]

作者: 任子杰    时间: 2015-11-6 01:06
标题: 图片查看器




  1. #import "ViewController.h"

  2. @interface ViewController ()

  3. @property(nonatomic,strong)UILabel *nolabel;
  4. @property(nonatomic,strong)UIImageView *img;
  5. @property(nonatomic,strong)UIButton *leftbutton;
  6. @property(nonatomic ,strong)UIButton *rightbutton;
  7. @property(nonatomic,strong)UILabel *infolabel;

  8. //记录当前照片索引
  9. @property(nonatomic,assign)int index;
  10. //定义数组存放字典
  11. @property(nonatomic,strong)NSArray *array;

  12. @end

  13. @implementation ViewController

  14. //懒加载 重写get方法  在程序最需要的时候创建对象
  15. -(NSArray *)array{
  16.    
  17.     NSLog(@"读取图像信息");
  18.     if (_array==nil) {
  19.         NSLog(@"实例化数组");
  20.         
  21.         //设置数组的路径 NSBundle 程序编译安装过后的程序包 区分大小写
  22.         NSString *path=[[NSBundle mainBundle]pathForResource:@"imagelist" ofType:@"plist"];
  23.         
  24.         NSLog(@"%@",path);
  25.         _array=[NSArray arrayWithContentsOfFile:path];
  26.         NSLog(@"%@",_array);
  27.         
  28.     }
  29.    
  30.     return _array;

  31. }

  32. -(UILabel *)nolabel{

  33.     if (_nolabel==nil) {
  34.         
  35.         //初始化控件
  36.         _nolabel=[[UILabel alloc]initWithFrame:CGRectMake(0, 30, self.view.bounds.size.width, 40)];
  37.         //设置文字
  38.         //_nolabel.text=@"1/5";
  39.         //设置对齐方式
  40.         _nolabel.textAlignment=NSTextAlignmentCenter;
  41.         //加载到视图
  42.         [self.view addSubview:_nolabel];
  43.         
  44.     }

  45.     return _nolabel;

  46. }

  47. -(UIImageView *)img{


  48.     if (_img==nil) {
  49.         
  50.         //图片
  51.         CGFloat imgw=200;
  52.         CGFloat imgh=200;
  53.         //图片的x轴位置等于整个view的宽度减去图片的宽度除以2
  54.         CGFloat imgx=(self.view.bounds.size.width-imgw)*0.5;
  55.         //CGRectGetMaxY 求最大的y值
  56.         CGFloat imgy=CGRectGetMaxY(self.nolabel.frame)+20;
  57.         
  58.         _img=[[UIImageView alloc]initWithFrame:CGRectMake(imgx, imgy, imgw, imgh)];
  59.         
  60.         [self.view addSubview:_img];
  61.         
  62.     }
  63.     return _img;


  64. }

  65. -(UILabel *)infolabel{

  66.     if (_infolabel==nil) {
  67.         
  68.         //描述文字
  69.         
  70.         CGFloat descY=CGRectGetMaxY(self.img.frame)+20;
  71.         
  72.         _infolabel=[[UILabel alloc]initWithFrame:CGRectMake(0, descY, self.view.bounds.size.width, 100)];
  73.         //需要label有足够的高度才会换行  此处label高度为100
  74.         _infolabel.numberOfLines=0;
  75.         
  76.         _infolabel.textAlignment=NSTextAlignmentCenter;
  77.         
  78.         [_infolabel setTextColor:[UIColor yellowColor]];
  79.         
  80.         [self.view addSubview:_infolabel];
  81.         
  82.     }

  83.     return _infolabel;

  84. }

  85. -(UIButton *)leftbutton{


  86.     if (_leftbutton==nil) {
  87.         
  88.         //左边按钮
  89.         
  90.         _leftbutton=[[UIButton alloc]initWithFrame:CGRectMake(0, 0, 40, 40)];
  91.         
  92.         CGFloat centenrX=(self.img.frame.origin.x)*0.5;
  93.         CGFloat centerY=self.img.center.y;
  94.         
  95.         _leftbutton.center=CGPointMake(centenrX, centerY);
  96.         
  97.         [_leftbutton setBackgroundImage:[UIImage imageNamed:@"left_normal"] forState:UIControlStateNormal];
  98.         
  99.         [self.view addSubview:_leftbutton];
  100.         
  101.         [_leftbutton addTarget:self action:@selector(clickButton:) forControlEvents:UIControlEventTouchUpInside];
  102.         _leftbutton.tag=-1;
  103.         
  104.     }
  105.     return _leftbutton;

  106. }

  107. -(UIButton *)rightbutton{


  108.     if (_rightbutton==nil) {
  109.         
  110.         //右边按钮
  111.         _rightbutton=[[UIButton alloc]initWithFrame:CGRectMake(0, 0, 40, 40)];
  112.         CGFloat centenrX=(self.img.frame.origin.x)*0.5;
  113.         CGFloat centerY=self.img.center.y;
  114.         _rightbutton.center=CGPointMake(self.view.bounds.size.width-centenrX, centerY);
  115.         
  116.         [_rightbutton setBackgroundImage:[UIImage imageNamed:@"right_normal"] forState:UIControlStateNormal];
  117.         
  118.         [self.view addSubview:_rightbutton];
  119.         
  120.         //代码实现连线//@selector(clickButton:)此处谁点击就传入谁
  121.         [_rightbutton addTarget:self action:@selector(clickButton:) forControlEvents:UIControlEventTouchUpInside];
  122.         _rightbutton.tag=1;

  123.     }

  124.     return _rightbutton;

  125. }




  126. - (void)viewDidLoad {
  127.    
  128.     //初始化父类
  129.     [super viewDidLoad];
  130.    
  131.     [self showsPhotoinfo];
  132.    
  133.    
  134. }


  135. -(void)showsPhotoinfo{

  136.     //设置label动态显示内容
  137.     _nolabel.text=[NSString stringWithFormat:@"%d/%d",self.index+1,5];
  138.    
  139.     //先根据index索引找出相应的字典再根据字典找相应内容
  140.     self.img.image=[UIImage imageNamed:self.array[self.index][@"name"]];
  141.     self.infolabel.text=self.array[self.index][@"desc"];
  142.    
  143.     self.rightbutton.enabled = (self.index != 4);
  144.    
  145.     self.leftbutton.enabled = (self.index != 0);
  146. }



  147. -(void)clickButton:(UIButton *)button{
  148.    
  149.    
  150.     self.index+=button.tag;
  151.     [self showsPhotoinfo];


  152. }
复制代码








欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2