标签:
定时器UITimer和视图对象移动
在ViewController.h
#import <UIKit/UIKit.h>
@interface ViewController : UIViewController{
//定义一个定时器对象
//可以在每隔固定的时间发送一个消息
//通过消息来调用相应的事件函数
//通过此函数可在固定时间段来完成一个根据时间间隔的任务
NSTimer * _timeView;
}
//定时器的属性对象
@property(retain,nonatomic) NSTimer * timeView;
@end
在ViewController.m
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
//属性和成员变量的同步
@synthesize timeView =_timeView;
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
//启动定时器按钮
UIButton * btn =[UIButton buttonWithType:UIButtonTypeRoundedRect];
//目前我们使用UIButtonTypeRoundedRect设置圆角已经不可以了,需要加上下面2句设置四周的圆角
[btn.layer setMasksToBounds:YES];
[btn.layer setCornerRadius:10.0];//设置矩形四个圆角半径
btn.frame=CGRectMake(100, 100, 100, 40);
[btn setTitle:@"定时器按钮" forState:UIControlStateNormal];
btn.backgroundColor=[UIColor greenColor];
[btn addTarget:self action:@selector(pressStart) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btn];
//停止定时器按钮
UIButton * btnStop =[UIButton buttonWithType:UIButtonTypeRoundedRect];
//目前我们使用UIButtonTypeRoundedRect设置圆角已经不可以了,需要加上下面2句设置四周的圆角
[btnStop.layer setMasksToBounds:YES];
[btnStop.layer setCornerRadius:10.0];//设置矩形四个圆角半径
btnStop.frame=CGRectMake(100, 200, 100, 40);
[btnStop setTitle:@"停止定时器" forState:UIControlStateNormal];
btnStop.backgroundColor=[UIColor redColor];
[btnStop addTarget:self action:@selector(pressStop) forControlEvents:UIControlEventTouchUpInside];
[self.view addSubview:btnStop];
//创建一个view视图
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{
//NSTime的类方法创建一个定时器并且启动这个定时器
//p1:每个多长时间调用定时器函数,以秒为单位
//p2:表示实现这个定时器函数的对象
//p3:定时器函数对象
//p4:可以传入定时器函数中一个参数,无参数传入nil
//p5:定时器是否重复操作YES表示重复,NO表示只完成一次函数调用
// _timeView = [NSTimer scheduledTimerWithTimeInterval:1 target:self selector:@selector(updateTime) userInfo:nil repeats:YES];
_timeView = [NSTimer scheduledTimerWithTimeInterval:0.03 target:self selector:@selector(updateTime:) userInfo:@"苹果" repeats:YES];
}
//定时器函数
//- (void) updateTime{
// NSLog(@"test11");
//}
//将定时器本身作为参数传入
- (void) updateTime:(NSTimer* )timer{
NSLog(@"test11 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(_timeView!=nil){
[_timeView invalidate];
}
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
iOS开发从入门到精通--定时器UITimer和视图对象移动
标签:
原文地址:http://blog.csdn.net/android_it/article/details/51945940