当前位置: 移动技术网 > 移动技术>移动开发>IOS > iOS开发从入门到精通--定时器UITimer和视图对象移动

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

2018年02月18日  | 移动技术网移动技术  | 我要评论

定时器UITimer和视图对象移动
在ViewController.h

#import 

@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

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网