此文学习来源为:http://study.163.com/course/introduction/1002858003.htm

此工程文件实现功能:

1、通过点击“启动定时器”按钮,在定时器方法中每隔固定时长打印字符串,并实现view视图移动

2、通过点击“停止定时器”按钮,停止定时器方法的执行

3、以上操作可以重复执行

===========================ViewController.h脚本==============================

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController

{

//定义一个定时器对象

//可以在每个固定时间发送一个消息

//通过此消息来调用相应的时间函数

//通过此函数可以在固定时间段来完成一个根据时间间隔的任务

NSTimer* _timerView;

}

//定时器的属性对象

@property (retain,nonatomic) NSTimer* timerView;

@end

===========================ViewController.m脚本==============================

#import "ViewController.h"

@interface ViewController ()

@end

@implementation ViewController

//属性和成员变量的同步

@synthesize timerView = _timerView;

- (void)viewDidLoad {

[super viewDidLoad];

// Do any additional setup after loading the view, typically from a nib.

UIButton* btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];

btn.frame = CGRectMake(100, 100, 80, 40);

[btn setTitle:@"启动定时器" forState:UIControlStateNormal];

[btn addTarget:self action:@selector(pressStart) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:btn];

UIButton* btnStop = [UIButton buttonWithType:UIButtonTypeRoundedRect];

btnStop.frame = CGRectMake(100, 200, 80, 40);

[btnStop setTitle:@"停止定时器" forState:UIControlStateNormal];

[btnStop addTarget:self action:@selector(pressStop) forControlEvents:UIControlEventTouchUpInside];

[self.view addSubview:btnStop];

UIView* view = [[UIView alloc] init];

view.frame = CGRectMake(0, 0, 80, 80);

view.backgroundColor = [UIColor orangeColor];

[self.view addSubview:view];

//通过view的标签值

//通过父亲视图对象以及view的标签值可以获得相应的视图对象

view.tag = 101;

}

//按下开始按钮时调用

-(void)pressStart

{

//NSTimer的类方法创建一个定时器并且启动这个定时器

//P1:每隔多长时间调用定时器函数,以秒为单位

//P2:表示实现定时器函数的对象(指针)

//P3:定时器函数对象

//P4:可以传入定时器函数中一个参数,无参数可以传nil

//P5:定时器是否重复操作 YES:重复 NO:只完成一次函数调用

//返回值为一个新建好的定时器对象

_timerView = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(updateTimer:) userInfo:@"小明" repeats:YES];

}

-(void) updateTimer:(NSTimer*) timer

{

NSLog(@"test!!!,name = %@",timer.userInfo);

//最好tag从100开始

UIView* view = [self.view viewWithTag:101];

view.frame = CGRectMake(view.frame.origin.x + 1, view.frame.origin.y + 1, 80, 80);

}

//按下停止按钮时调用

-(void)pressStop

{

if (_timerView != nil) {

//停止定时器

[_timerView invalidate];

}

}

- (void)didReceiveMemoryWarning {

[super didReceiveMemoryWarning];

// Dispose of any resources that can be recreated.

}

@end

学习总结:

  • 重点:定时器的创建使用
  • 难点:定时器移动视图

源码链接地址:https://pan.baidu.com/s/1yrOLXZZeu9MiOWtMq5-EGA  密码:7t1l

 

IOS开发之XCode学习010:定时器和视图对象的更多相关文章

  1. IOS开发之XCode学习014:警告对话框和等待提示器

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能:  1.警告对话框和等待提示器的概念 2.警告对话框 ...

  2. IOS开发之XCode学习011:UISwitch控件

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能:  1.定义UIswitch控件,添加UIswitc ...

  3. IOS开发之XCode学习009:UIViewController使用

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能: 通过点击屏幕事件,调用ViewController ...

  4. IOS开发之XCode学习008:UIViewController基础

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 红色框选部分用A代替,AppDelegate类在程序框架启动时,如果在i ...

  5. IOS开发之XCode学习007:UIWindow对象

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm #import "AppDelegate.h" @i ...

  6. IOS开发之XCode学习012:Slider和ProgressView

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能:  1.定义UISlider和UIProgressV ...

  7. IOS开发之XCode学习013:步进器和分栏控件

    此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能:  1.定义UIStepper和UISegmente ...

  8. iOS开发之Xcode常用调试技巧总结

    转载自:iOS开发之Xcode常用调试技巧总结 最近在面试,面试过程中问到了一些Xcode常用的调试技巧问题.平常开发过程中用的还挺顺手的,但你要突然让我说,确实一脸懵逼.Debug的技巧很多,比如最 ...

  9. 李洪强iOS开发之Xcode快捷键

    14个Xcode中常用的快捷键操作   在Xcode 6中有许多快捷键的设定可以使得你的编程工作更为高效,对于在代码文件中快速导航.定位Bug以及新增应用特性都是极有效的. 当然,你戳进这篇文章的目的 ...

随机推荐

  1. Oracle的一些简单语句

    drop后的表被放在回收站(user_recyclebin)里,而不是直接删除掉.这样,回收站里的表信息就可以被恢复,或彻底清除. 1.通过查询回收站user_recyclebin获取被删除的表信息, ...

  2. java文件监控[转]

    原文链接:http://blog.csdn.net/dancen/article/details/7786987#comments 问题:存在两个文件目录,且称之为源目录和目标目录,需要不定期将源目录 ...

  3. python爬虫(1)——urllib包

    人生苦短,我用python! 一.关于爬虫 鉴于我的windos环境使用命令行感觉非常不便,也懒得折腾虚拟机,于是我选择了一个折中的办法--Cmder.它的下载地址是:cmder.net Cmder是 ...

  4. 正负样本比率失衡SMOTE

    正负样本比率失衡SMOTE [TOC] 背景 这几天测试天池的优惠券预测数据在dnn上面会不会比集成树有较好的效果,但是正负样本差距太大,而处理这种情况的一般有欠抽样和过抽样,这里主要讲过抽样,过抽样 ...

  5. 【JavaWeb】c3p0连接池与MySQL

    正文之前 在之前的文章讲到了传统的JDBC连接MySQL的方式,但是这样的方式在进行多个连接时,就显得效率低下,明显不如连接池的效率,所以我们这次来讲解一下JDBC连接池之一:c3p0 正文 1. 准 ...

  6. Halcon一日一练:CAD类型的相关操作

    大很多场合,需要在视觉程序中导入CAD文档,比如,在3C行业,需要对手机外壳进行CNC加工,或者点胶操作,此时,需要获取产品的各个点的数据.如果将CAD直接导入,就会大的减少编程工作量,同时也能达到很 ...

  7. 洛谷P2286 [HNOI2004]宠物收养场【Treap】题解+AC代码

    题目传送门啦~啦~啦~ 题目描述 凡凡开了一间宠物收养场.收养场提供两种服务:收养被主人遗弃的宠物和让新的主人领养这些宠物. 每个领养者都希望领养到自己满意的宠物,凡凡根据领养者的要求通过他自己发明的 ...

  8. Python基础——数据类型与基本运算【主要为除法】

    Python版本:3.6.2  操作系统:Windows  作者:SmallWZQ 无论是Python 3.x版本还是2.x版本,Python均支持多种数据类型,能够直接处理的数据类型包括Int类型. ...

  9. Redis常见七种使用场景(PHP实战)

    edis 是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. 本篇文章,主要介绍利用Redis常见应用场景下PHP实战. ...

  10. canvas-缩放

    Canvas-图片缩放 由上一篇canvas-旋转的例子可以了解到canvas的一些特性,不熟悉的同学可以先去看看canvas-旋转. 我们在将图片引入canvas时,图片会一原始像素渲染.这样往往不 ...