此文学习来源为: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. 洛谷 [P1220] 关路灯

    本题是一道区间DP,很容易设计出状态, dp[i][j]代表关掉i到j的路灯所耗的电量,但是对于新到一个路灯来说,可以是原来直接来的,也可以是掉头来的,于是还需要添加一维 0代表在区间的左端,1代表在 ...

  2. BZOJ 4216: Pig [分块]

    传送门 询问区间和...内存3M 分块前缀和... 我连swap都是这么l=l^r , r=l^r , l=l^r写的.... #include <cstdio> typedef long ...

  3. eclipse的maven项目中找不到Maven Dependencies

    菜菜的我又来了,笨鸟不一定要先飞,但一定要坚持 今天记录一个初级错误 比如我们在eclipse创建maven项目来运行我们的web项目 搭建完工程后发现javax-servlet包全部报错 到这里我还 ...

  4. ASCII Art (English)

    Conmajia, 2012 Updated on Feb. 18, 2018 What is ASCII art? It's graphic symbols formed by ASCII char ...

  5. Vue的土著指令和自定义指令

    1.土著指令 当我开始学习Vue的时候,看官网的时候看到了"指令"两个字.我愣住了,what?指令是啥啊?后来继续往下看,像这种什么"v-for""v ...

  6. Redis 持久化和配置文件

    Reids 持久化 Redis提供了两种持久化的方式,分别是RDB(Redis DataBase)和AOF(Append Only File).   RDB,简而言之,就是在不同的时间点,将redis ...

  7. POJ 1021 2D-Nim

    Description The 2D-Nim board game is played on a grid, with pieces on the grid points. On each move, ...

  8. WinFom中经典小游戏(含源码)

    最近整理了若干经典的小游戏,无聊时可以打发时间.程序本身不大,练手非常不错,主要是GDI编程,主界面地址如下图所示 源码下载方式 1,关注微信公众号:小特工作室(也可直接扫描签名处二维码) 2,发送: ...

  9. makefile讲解

    仅供自己学习使用 一.Makefile介绍 Makefile 或 makefile: 告诉make维护一个大型程序, 该做什么.Makefile说明了组成程序的各模块间的相互 关系及更新模块时必须进行 ...

  10. 在项目中遇到关于 CSS Overflow Hidden在iPhone & Safari不起作用

    调试了半天 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <m ...