ISO开发学习之路--第一篇--图像显示器制作(1)

项目主要工作,能够通过按钮按进行翻上一张和下一张对相片就行查看功能。这项目有点简单,但是是学习的必经过程。对学习的整理和参考。

主要目的:

1)熟悉3大控件的使用方法和规则

2)熟悉3大控件的编程方法

3)熟悉ISO开发技巧

下面是今天学习内容的源码,这部分源码实现的有点罗嗦,后期会改成,后来会用plist的方式和应用数组的方式,简化实现图片显示的方法。

#import "ViewController.h"

@interface ViewController ()

@property (nonatomic, strong) UILabel *iLabel;

@property (nonatomic, strong) UIImageView *iImage;

@property (nonatomic, strong) UILabel *idesLabel;

@property (nonatomic, strong) UIButton *leftButton;

@property (nonatomic, strong) UIButton *rightButton;

@property (nonatomic, assign) int index;

@end

@implementation ViewController

- (void)viewDidLoad {

[super viewDidLoad];

/*标签*/

self.iLabel = [[UILabel alloc]initWithFrame:CGRectMake(0, 20, self.view.frame.size.width, 40)];

self.iLabel.textAlignment = NSTextAlignmentCenter;

[self.view addSubview:_iLabel];

/*显示图片*/

CGFloat Image_W = 300;

CGFloat Image_H = 300;

CGFloat Image_X = (self.view.frame.size.width - Image_W) *0.5;

CGFloat Image_Y = CGRectGetMaxY(self.iLabel.frame) + 20;

self.iImage = [[UIImageView alloc]initWithFrame:CGRectMake(Image_X, Image_Y, Image_W, Image_H)];

self.iImage.image = [UIImage imageNamed:@"biaoqingdi"];

[self.view addSubview:_iImage];

/*显示左右按钮*/

self.leftButton = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 40, 40)];

self.leftButton.center = CGPointMake(CGRectGetMinX(self.iImage.frame) * 0.5, (CGRectGetMinY(self.iImage.frame) + self.iImage.frame.size.height* 0.5));

[_leftButton setImage:[UIImage imageNamed:@"left_normal"] forState:UIControlStateNormal];

[_leftButton setImage:[UIImage imageNamed:@"left_highlighted"] forState:UIControlStateHighlighted];

_leftButton.tag = -1;

[self.view addSubview:_leftButton];

[_leftButton addTarget:self action:@selector(leftAction) forControlEvents:UIControlEventTouchUpInside];

self.rightButton = [[UIButton alloc]initWithFrame:CGRectMake(0, 0, 40, 40)];

self.rightButton.center = CGPointMake((CGRectGetMaxX(self.iImage.frame) + self.leftButton.center.x), (CGRectGetMinY(self.iImage.frame) + self.iImage.frame.size.height* 0.5));

[_rightButton setImage:[UIImage imageNamed:@"right_normal"] forState:UIControlStateNormal];

_rightButton.tag = 1;

[_rightButton setImage:[UIImage imageNamed:@"right_highlighted"] forState:UIControlStateHighlighted];

[self.view addSubview:_rightButton];

[_rightButton addTarget:self action:@selector(rightAction) forControlEvents:UIControlEventTouchUpInside];

/*描述内容*/

self.idesLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, CGRectGetMaxY(self.iImage.frame) + 30, self.view.frame.size.width, 20)];

self.idesLabel.textAlignment = NSTextAlignmentCenter;

[self.view addSubview:_idesLabel];

[self buttonAction:nil];

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

- (void) buttonAction :(UIButton *) Button

{

NSLog(@"%s", __func__);

self.index += (int)Button.tag;

/*显示索引*/

self.iLabel.text = [NSString stringWithFormat:@"%d/%d", self.index + 1, 5];

switch (self.index)

{

case 0:

self.iImage.image  = [UIImage imageNamed:@"biaoqingdi"];

self.idesLabel.text = @"表情帝";

break;

case 1:

self.iImage.image = [UIImage imageNamed:@"bingli"];

self.idesLabel.text = @"病例表";

break;

case 2:

self.iImage.image = [UIImage imageNamed:@"chiniupa"];

self.idesLabel.text = @"吃牛排";

break;

case 3:

self.iImage.image = [UIImage imageNamed:@"danteng"];

self.idesLabel.text = @"蛋疼";

break;

case 4:

self.iImage.image = [UIImage imageNamed:@"wangba"];

self.idesLabel.text = @"王八";

break;

default:

break;

}

}

- (void) leftAction

{

[self buttonAction: _leftButton];

_leftButton.enabled = (self.index != 0);

_rightButton.enabled = (self.index != 4);

}

- (void) rightAction

{

[self buttonAction:_rightButton];

_leftButton.enabled = (self.index != 0);

_rightButton.enabled = (self.index != 4);

}

@end

总结:

1)如果是几个按钮的话, 可以通过+-1的方式利用tag进行,简化明了。

2)uibutton和其他的控件应用不一样

3)在代码中多想下代码重复利用怎么处理能使代码更加简单!

时间: 2025-01-01 20:56:50

ISO开发学习之路--第一篇--图像显示器制作(1)的相关文章

IOS开发学习之路--第一篇--准备和说明

经过1个多月的对Objective-C的学习和了解,对其也有一定的认识,但是仅仅是了解,还需要今后的不断熟练和摸索才能掌握. 从现在写这个文章起,正式进入了学习IOS开发之路.之前看了很多人发表自己的论坛或者博客,觉得自己也该有这个东西,不仅可以充实学习内容,也是积累知识的过程.同时也可以总结学习过程中的各种方法. 长风破浪会有时,直挂云帆济沧海!每天进步一点点,生活乐趣大点点! 学习IOS开发,主要的学习资料: 1)OC基础,李明杰IOS开发基础视频(C和OC)经典 2)IOS开发技术,黑马2

kafka 学习之路 第一篇

kafka官网:http://kafka.apache.org/ 下载地址:http://mirrors.hust.edu.cn/apache/kafka/0.10.2.0/kafka_2.12-0.10.2.0.tgz 未完待续

Android开发学习之路--网络编程之xml、json

一般网络数据通过http来get,post,那么其中的数据不可能杂乱无章,比如我要post一段数据,肯定是要有一定的格式,协议的.常用的就是xml和json了.在此先要搭建个简单的服务器吧,首先呢下载xampp,然后安装之类的就不再多讲了,参考http://cnbin.github.io/blog/2015/06/05/mac-an-zhuang-he-shi-yong-xampp/.安装好后,启动xampp,之后在浏览器输入localhost或者127.0.0.1就可以看到如下所示了: 这个就

android开发学习之路——连连看之游戏逻辑(五)

GameService组件则是整个游戏逻辑实现的核心,而且GameService是一个可以复用的业务逻辑类. (一)定义GameService组件接口 根据前面程序对GameService组件的依赖,程序需要GameService组件包含如下方法.   ·start():初始化游戏状态,开始游戏的方法.     ·Piece[][] getPieces():返回表示游戏状态的Piece[][]数组.     ·boolean hasPieces():判断Pieces[][]数组中是否还剩Piec

Android开发学习之路-RecyclerView滑动删除和拖动排序

Android开发学习之路-RecyclerView使用初探 Android开发学习之路-RecyclerView的Item自定义动画及DefaultItemAnimator源码分析 Android开发学习之路-下拉刷新怎么做? 本篇是接着上面三篇之后的一个对RecyclerView的介绍,这里多说两句,如果你还在使用ListView的话,可以放弃掉ListView了.RecyclerView自动帮我们缓存Item视图(ViewHolder),允许我们自定义各种动作的动画和分割线,允许我们对It

Android开发学习之路-自定义ListView(继承BaseAdapter)

大三学生一个,喜欢编程,喜欢谷歌,喜欢Android,所以选择的方向自然是Android应用开发,开博第一篇,希望以后会有更多的进步. 最近在做一个记账App的时候,需要一个Activity来显示每个月的消费各个项目的比例,Activity中主要用到一个ListView,ListView中包括一个TextView来显示类型的名称,一个TextView来显示所占比例,一个ProgressBar来显示进度条,让每个条目的比例更加清晰.如下图(这里只提供实现方法,界面效果暂不提供) 因为这种效果比较特

Eclipse插件开发 学习笔记 PDF 第一篇到第四篇 免分下载 开发基础 核心技术 高级进阶 综合实例

<<Eclipse插件开发 学习笔记>>,本书由浅入深.有重点.有针对性地介绍了Eclipse插件开发技术,全书分为4篇共24章.第一篇介绍Eclipse平台界面开发的基础知识.包含SWT控件的使用.界面布局.事件处理等内容:第二篇是插件开发核心技术,主要介绍插件开发的核心知识要点,包含行为(Action).视图(ViewPart).编辑器(Editor).透视图(Perspective)等10章的内容.第三篇主要讲述插件开发的高级内容,包含开发高级内容.富client平台技术(R

Swift开发学习(一):初始篇

http://blog.csdn.net/powerlly/article/details/29351103 Swift开发学习:初始篇 关于 苹果公司于WWDC2014(Apple Worldwide Developers Conference. June 2-6, San Francisco)发布新的编程语言--Swift.在这里就不重复介绍了,本篇主要简单列举几点,然后介绍Swift入门操作. Swift是什么 Swift是用来写iOS和OS X程序的编程语言. Swift吸取了C和Obj

Android开发学习之路-图片颜色获取器开发(1)

系列第一篇,从简单的开始,一步一步完成这个小项目. 颜色获取就是通过分析图片中的每个像素的颜色,来分析整个图片的主调颜色,有了主调颜色,我们可以用于图片所在卡片的背景或者标题颜色,这样整体感更加强烈. 有兴趣的可以学习下使用谷歌提供的Palette,也是做同样的工作,博客地址:http://www.cnblogs.com/Fndroid/p/5201236.html 先看效果图: 分析原理比较简单,就是获取图片的所有像素的颜色,然后统计,把统计的数目排序,然后返回给用户. 但是这里要先注意几个问