#import "ViewController.h"
#define kImage @"image"
#define kDescribe @"describe"
@interface ViewController ()
@property (nonatomic, weak) UIImageView *proImageView;
@property (nonatomic, weak) UILabel *proLabImageNumber;
@property (nonatomic, weak) UILabel *proLabImageDescribe;
@property (nonatomic, weak) UIButton *proBtnLeft;
@property (nonatomic, weak) UIButton *proBtnRight;
@property (nonatomic, assign) int index;
@property (nonatomic, strong) NSArray *imageData;
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
/** 显示页面数 */
UILabel *labImageNumber = [[UILabel alloc] initWithFrame:CGRectMake(175, 50, 30, 25)];
labImageNumber.text = [NSString stringWithFormat:@"%d/%lu",self.index+1,self.imageData.count];
labImageNumber.textColor = [UIColor greenColor];
[self.view addSubview:labImageNumber];
self.proLabImageNumber = labImageNumber;
/** 图片浏览 */
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"biaoqingdi"]];
imageView.frame = CGRectMake(80, 100, 200, 250);
[self.view addSubview:imageView];
self.proImageView = imageView;
/** 左翻页 */
UIButton *btnLeft = [UIButton buttonWithType:UIButtonTypeCustom];
btnLeft.frame = CGRectMake(20, 210, 50, 50);
[btnLeft setImage:[UIImage imageNamed:@"left_normal"] forState:UIControlStateNormal];
[btnLeft setImage:[UIImage imageNamed:@"left_highlighted"] forState:UIControlStateHighlighted];
[btnLeft setImage:[UIImage imageNamed:@"left_disable"] forState:UIControlStateDisabled];
// 设置按钮状态为禁止使用,参数enabled为NO
btnLeft.enabled = NO;
[self.view addSubview:btnLeft];
[btnLeft setTag:1];
[btnLeft addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
self.proBtnLeft = btnLeft;
/** 右翻页 */
UIButton *btnRight = [UIButton buttonWithType:UIButtonTypeCustom];
btnRight.frame = CGRectMake(300, 210, 50, 50);
[btnRight setImage:[UIImage imageNamed:@"right_normal"] forState:UIControlStateNormal];
[btnRight setImage:[UIImage imageNamed:@"right_highlighted"] forState:UIControlStateHighlighted];
[btnRight setImage:[UIImage imageNamed:@"right_disable"] forState:UIControlStateDisabled];
[self.view addSubview:btnRight];
[btnRight setTag:2];
[btnRight addTarget:self action:@selector(btnClick:) forControlEvents:UIControlEventTouchUpInside];
self.proBtnRight = btnRight;
/** 图片描述 */
UILabel *labImageDescribe = [[UILabel alloc] initWithFrame:CGRectMake(100, 400, 200, 50)];
labImageDescribe.textColor = [UIColor redColor];
labImageDescribe.text = @"瞧这熊孩子。。。";
[self.view addSubview:labImageDescribe];
self.proLabImageDescribe = labImageDescribe;
}
// 重写imageData的get方法
- (NSArray *)imageData
{
if (_imageData == nil) { // 从未初始化
// 初始化数据
// File : 全路径
// NSBundle : 一个NSBundle代表一个文件夹
// 利用mainBundle就可以访问软件资源包中的任何资源
NSBundle *bundel = [NSBundle mainBundle];
NSString *path = [bundel pathForResource:@"ImageAndDescribe" ofType:@"plist"];
_imageData = [NSArray arrayWithContentsOfFile:path];
}
return _imageData;
}
- (void) changeImageData
{
// 改变按钮状态
self.proBtnLeft.enabled = (self.index != 0 );
self.proBtnRight.enabled = (self.index != self.imageData.count-1);
// 改变labImageNumber控件文字
self.proLabImageNumber.text = [NSString stringWithFormat:@"%d/%lu",self.index+1,(unsigned long)self.imageData.count];
// 2.取出index对应的字典数据
NSDictionary *imageDict = self.imageData[self.index];
// 设置图片
self.proImageView.image = [UIImage imageNamed:imageDict[kImage]];
self.proLabImageDescribe.text = imageDict[kDescribe];
}
// 监听
- (void) btnClick: (UIButton *) btn
{
switch (btn.tag) {
case 1:
self.index--;
[self changeImageData];
break;
case 2:
self.index++;
[self changeImageData];
break;
}
}
@end