UIImageView、UILabel、UIButton实现一个小案例

等一下我们就要做成这样的效果 下面看代码(代码没有优化过 基本都看动) (哒哒:刚刚看上去觉得好难啦);

//// ViewController.m// 03图片浏览器(代码创建)//// Created by sunda on 15/7/1.// Copyright (c) 2015年 sunda. All rights reserved.//#import "ViewController.h"@interface ViewController ()/** * 序号 */@property (strong,nonatomic)UILabel *orderLable;/** * 图片 */@property (nonatomic,strong)UIImageView *iconImageView;/** * 图片描述 */@property (nonatomic,strong)UILabel *detailsLable;/** * 左边箭头 */@property (nonatomic,strong)UIButton *leftButton;/** * 右边的箭头 */@property (nonatomic,strong)UIButton *rightButton;/** * 计数 */@property (nonatomic,assign)int index;@end@implementation ViewController- (void)viewDidLoad {[super viewDidLoad];//搭建序号self.orderLable = [[UILabel alloc] init];self.orderLable.frame = CGRectMake(0, 20, self.view.frame.size.width,40);self.orderLable.text = @"1/5";//设置文字居中self.orderLable.textAlignment = NSTextAlignmentCenter;[self.view addSubview:self.orderLable];//搭建图片self.iconImageView = [[UIImageView alloc] init];float iconW = 200;float iconH = 200;float iconY = CGRectGetMaxY(self.orderLable.frame) + 20;float iconX = (self.view.frame.size.width – iconW) / 2;self.iconImageView.frame = CGRectMake(iconX, iconY, iconW, iconH);self.iconImageView.image = [UIImage imageNamed:@"biaoqingdi"];[self.view addSubview:self.iconImageView];//搭建图片描述self.detailsLable = [[UILabel alloc] init];CGFloat detailsY = CGRectGetMaxY(self.iconImageView.frame) + 20;self.detailsLable.frame = CGRectMake(0, detailsY, self.view.frame.size.width,100);self.detailsLable.text = @"神马表情";self.detailsLable.backgroundColor = [UIColor redColor];//设置文字居中self.detailsLable.textAlignment = NSTextAlignmentCenter;[self.view addSubview:self.detailsLable];//创建左箭头self.leftButton = [[UIButton alloc] init];self.leftButton.frame = CGRectMake(0, 0, 40, 40);[self.leftButton setBackgroundImage:[UIImage imageNamed:@"left_normal"] forState:UIControlStateNormal];[self.leftButton setBackgroundImage:[UIImage imageNamed:@"left_highlighted"] forState:UIControlStateHighlighted];self.leftButton.center = CGPointMake(self.iconImageView.frame.origin.x / 2, self.iconImageView.center.y);[self.view addSubview:self.leftButton];[self.leftButton addTarget:self action:@selector(leftClick) forControlEvents:UIControlEventTouchUpInside];//创建右箭头self.rightButton = [[UIButton alloc] init];self.rightButton.frame = CGRectMake(0, 0, 40, 40);[self.rightButton setBackgroundImage:[UIImage imageNamed:@"right_normal"] forState:UIControlStateNormal];[self.rightButton setBackgroundImage:[UIImage imageNamed:@"right_highlighted"] forState:UIControlStateHighlighted];self.rightButton.center = CGPointMake(self.view.frame.size.width – self.leftButton.center.x, self.iconImageView.center.y);[self.view addSubview:self.rightButton];[self.rightButton addTarget:self action:@selector(rightClick) forControlEvents:UIControlEventTouchUpInside];[self changeImage];}/** 修改图像数据 */- (void)changeImage{// 设置UI上面所有控件的显示内容// 根据self.index显示序号标签,图像,图像描述self.orderLable.text = [NSString stringWithFormat:@"%d/%d", self.index + 1, 5];switch (self.index) {case 0:self.iconImageView.image = [UIImage imageNamed:@"biaoqingdi"];self.detailsLable.text = @"表情";break;case 1:self.iconImageView.image = [UIImage imageNamed:@"bingli"];self.detailsLable.text = @"病例";break;case 2:self.iconImageView.image = [UIImage imageNamed:@"chiniupa"];self.detailsLable.text = @"吃牛扒";break;case 3:self.iconImageView.image = [UIImage imageNamed:@"danteng"];self.detailsLable.text = @"蛋疼";break;case 4:self.iconImageView.image = [UIImage imageNamed:@"wangba"];self.detailsLable.text = @"王八";break;}self.leftButton.enabled = (self.index != 0);self.rightButton.enabled = (self.index != 4);}/** 左边按钮点击方法 */- (void)leftClick{NSLog(@"左");self.index –;[self changeImage];}/** 右边按钮点击方法 */- (void)rightClick{NSLog(@"右");self.index ++;[self changeImage];}@end是不是 很简单(哒哒:好难,,果断去敲代码了。。。。)

代码优化一 switch 优化

重要的我在代码中 加了注释

//// ViewController.m// 03图片浏览器(代码创建)//// Created by sunda on 15/7/1.// Copyright (c) 2015年 sunda. All rights reserved.//#import "ViewController.h"@interface ViewController ()/** * 序号 */@property (strong,nonatomic)UILabel *orderLable;/** * 图片 */@property (nonatomic,strong)UIImageView *iconImageView;/** * 图片描述 */@property (nonatomic,strong)UILabel *detailsLable;/** * 左边箭头 */@property (nonatomic,strong)UIButton *leftButton;/** * 右边的箭头 */@property (nonatomic,strong)UIButton *rightButton;/** * 计数 */@property (nonatomic,assign)int index;/** * 图像列表 */@property (nonatomic, strong) NSArray *imageList;@end@implementation ViewController// 懒加载-在需要的时候,在实例化加载到内存中- (NSArray *)imageList{// 只有第一次调用getter方法时,为空,此时实例化并建立数组if (_imageList == nil) {// File表示从文件的完整路径加载文件// Bundle-包,只读的NSString *path = [[NSBundle mainBundle] pathForResource:@"ImageData" ofType:@"plist"];_imageList = [NSArray arrayWithContentsOfFile:path];}return _imageList;}- (void)viewDidLoad {[super viewDidLoad];//搭建序号self.orderLable = [[UILabel alloc] init];self.orderLable.frame = CGRectMake(0, 20, self.view.frame.size.width,40);self.orderLable.text = @"1/5";//设置文字居中self.orderLable.textAlignment = NSTextAlignmentCenter;[self.view addSubview:self.orderLable];//搭建图片self.iconImageView = [[UIImageView alloc] init];float iconW = 200;float iconH = 200;float iconY = CGRectGetMaxY(self.orderLable.frame) + 20;float iconX = (self.view.frame.size.width – iconW) / 2;self.iconImageView.frame = CGRectMake(iconX, iconY, iconW, iconH);self.iconImageView.image = [UIImage imageNamed:@"biaoqingdi"];[self.view addSubview:self.iconImageView];//搭建图片描述self.detailsLable = [[UILabel alloc] init];CGFloat detailsY = CGRectGetMaxY(self.iconImageView.frame) + 20;self.detailsLable.frame = CGRectMake(0, detailsY, self.view.frame.size.width,100);self.detailsLable.text = @"神马表情";self.detailsLable.backgroundColor = [UIColor redColor];//设置文字居中self.detailsLable.textAlignment = NSTextAlignmentCenter;[self.view addSubview:self.detailsLable];//创建左箭头self.leftButton = [[UIButton alloc] init];self.leftButton.frame = CGRectMake(0, 0, 40, 40);[self.leftButton setBackgroundImage:[UIImage imageNamed:@"left_normal"] forState:UIControlStateNormal];[self.leftButton setBackgroundImage:[UIImage imageNamed:@"left_highlighted"] forState:UIControlStateHighlighted];self.leftButton.center = CGPointMake(self.iconImageView.frame.origin.x / 2, self.iconImageView.center.y);[self.view addSubview:self.leftButton];[self.leftButton addTarget:self action:@selector(leftClick) forControlEvents:UIControlEventTouchUpInside];//创建右箭头self.rightButton = [[UIButton alloc] init];self.rightButton.frame = CGRectMake(0, 0, 40, 40);[self.rightButton setBackgroundImage:[UIImage imageNamed:@"right_normal"] forState:UIControlStateNormal];[self.rightButton setBackgroundImage:[UIImage imageNamed:@"right_highlighted"] forState:UIControlStateHighlighted];self.rightButton.center = CGPointMake(self.view.frame.size.width – self.leftButton.center.x, self.iconImageView.center.y);[self.view addSubview:self.rightButton];[self.rightButton addTarget:self action:@selector(rightClick) forControlEvents:UIControlEventTouchUpInside];[self changeImage];}/** 修改图像数据 */- (void)changeImage{// 设置UI上面所有控件的显示内容// 根据self.index显示序号标签,图像,图像描述self.orderLable.text = [NSString stringWithFormat:@"%d/%d", self.index + 1, 5];self.iconImageView.image = [UIImage imageNamed:self.imageList[self.index][@"name"]];self.detailsLable.text = self.imageList[self.index][@"desc"];self.leftButton.enabled = (self.index != 0);self.rightButton.enabled = (self.index != 4);}/** 左边按钮点击方法 */- (void)leftClick{NSLog(@"左");self.index –;[self changeImage];}/** 右边按钮点击方法 */- (void)rightClick{NSLog(@"右");self.index ++;[self changeImage];}@end代码优化二 控件的懒加载

就是对虚怀若谷谦虚谨慎八个字真正理解的人,

UIImageView、UILabel、UIButton实现一个小案例

相关文章:

你感兴趣的文章:

标签云: