此文学习来源为: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. Python基础篇(七)

    加上两个下划线变量或者方法变为私有. >>> class Bird: ...    __song = "spark" ...    def sing(self): ...

  2. vue1.0中$index一直报错的解决办法

    原文链接:https://www.cnblogs.com/liqiong-web/p/8144925.html 看学习视频,因为年份比较早了,其实vue早已迭代到vue2.0了,遇到一些问题: v-f ...

  3. VScode离线安装插件

    VScode离线插件的转移 需求:换台电脑用VScode 找到插件安装路径 在本地找.vscode的文件夹,里面的extensions文件夹里都是下载的插件 复制发给其他电脑 在vscode首选项-- ...

  4. iOS 开发之 Xcode installation failed invalid argument!

    1.运行模拟器的时候 报出:installation failed invalid argument! 原因分析:我把Bundle indentifier 置为空了! http://stackover ...

  5. httping:测量网站延迟

    遇到网络问题的时候,我们一般会先通过 ping 这个工具来了解基本的情况.httping 与 ping 类似,不过它不是发送 ICMP 请求,而是发送 HTTP 请求.利用 httping,我们可以测 ...

  6. backgroud背景色样式兼容ie8 rgba()用法

    今天遇到了一个问题,要在一个页面中设置一个半透明的白色div.这个貌似不是难题,只需要给这个div设置如下的属性即可: background: rgba(255,255,255,.1);但是要兼容到i ...

  7. [SDOI2015]序列统计

    [SDOI2015]序列统计 标签: NTT 快速幂 Description 给你一个模m意义下的数集,需要用这个数集生成一个数列,使得这个数列在的乘积为x. 问方案数模\(1004535809\). ...

  8. Python世界里的赋值运算符

    Python赋值运算符 以下假设变量a为10,变量b为20: "=" 的作用是把右边的数值赋值给左边的变量 示例1:编程实现145893秒是几天几小时几分钟几秒钟? total = ...

  9. java 堆和栈

    转载自 http://blog.csdn.net/peterwin1987/article/details/7571808 博主讲的相当清楚吼吼吼

  10. Conemu, Msys2 工具整合,提升windows下控制台工作效率

    与windows cmd相比较git-bash这类的console工具好用很多,但是git-bash的命令和功能相对简单,功能扩展起来不方便,git-bash本身也是基于msys的. 昨天发现使用Ms ...