iOS开发从入门到精通--定时器UITimer和视图对象移动

来源:互联网 发布:淘宝有发票是正品么 编辑:程序博客网 时间:2024/05/21 09:43

定时器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
0 0