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

定时器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
时间: 2024-08-04 22:33:34

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

iOS开发从入门到精通--手动布局子视图

手动布局子视图: 下面先看下效果图,我们今天要实现的效果: 这里我们默认用storyboard启动: 首先我们要在白色的屏幕上面创建一个父视图SuperView(蓝色的背景),在父视图里面创建四个小视图(橘黄色的背景) 下面看代码, 在SuperView.h文件里面: #import <UIKit/UIKit.h> @interface SuperView : UIView{ UIView * _view01; UIView * _view02; UIView * _view03; UIVie

iOS开发从入门到精通--XIB使用介绍

XIB使用介绍: 首先我们删除一些不需要的东西: 然后我们创建一个新的视图控制器 红色箭头Also create XIB file要勾选上 这个时候,我们可以看到有三个文件创建成功了,其中有一个RootController.xib文件,在这个里面就看到了一个像手机一样的视图,我们可以在右边进行拖拽一些控件在上面 下面启动这个视图代码要在代理AppDelegate.m书写: 要引入#import "RootController.h" #import "AppDelegate.h

iOS开发从入门到精通--导航控制器基础

导航控制器基础 实现上面的导航栏,左侧按钮,中间的TITLE,还有右侧的test按钮,和一个播放的按钮 重新创建一个VCRoot根视图控制器 #import "AppDelegate.h" #import "VCRoot.h" @interface AppDelegate () @end @implementation AppDelegate - (BOOL)application:(UIApplication *)application didFinishLaun

iOS开发从入门到精通-- 警告对话框UIAlertView和等待提示器UIActivityIndicatorView

警告对话框UIAlertView和等待提示器UIActivityIndicatorView: 1.UIAlertView简单一点就是弹框 2.就是所谓的菊花转圈圈 声明:注意@interface ViewController : UIViewController<UIAlertViewDelegate>这个里面多了一个UIAlertViewDelegate代理 #import <UIKit/UIKit.h> @interface ViewController : UIViewCon

iOS开发从入门到精通--自动布局子视图

自动布局子视图 #import <UIKit/UIKit.h> @interface ViewController : UIViewController{ //创建父视图对象 UIView * _superView; //左上角label UILabel * _label01; //右上角label UILabel * _label02; //右下角label UILabel * _label03; //左下角label UILabel * _label04; //中间 UIView * _v

iOS开发从入门到精通--XIB使用,登陆界面小试牛刀

XIB使用,登陆界面小试牛刀 创建一个新的视图控制器,具体操作参见点击查看 在创建好的VCRoot.xib里面拖动需要的控件,并拖动给相应的控件添加属性,给登陆按钮添加事件. VCRoot.h文件里面: #import <UIKit/UIKit.h> @interface VCRoot : UIViewController //IBOutlet表示从xib中创建的 @property (weak, nonatomic) IBOutlet UITextField *mName; @propert

iOS开发从入门到精通--UIViewController使用

UIViewController使用:从ViewController.m跳转到ViewController02.m,ViewController.m的生命周期问题,ViewController02消失之后再显示ViewController的过程 ViewController.m里面的代码: #import "ViewController.h" #import "ViewController02.h" @interface ViewController () @end

iOS开发从入门到精通--UIViewController基础

UIViewController基础 我们还是不用storyboard,下面我们还是以代码来逐一说明: #import <UIKit/UIKit.h> #import "AppDelegate.h" //整个app程序的主函数,入口函数 int main(int argc, char * argv[]) { //自动内存释放池 @autoreleasepool { //UIKit框架结构的启动函数 //参数一:argc,启动时带有参数的个数 //参数二:argv,参数列表

iOS开发从入门到精通--开关按钮UISwitch控件

开关按钮UISwitch 在ViewController.h里面 #import <UIKit/UIKit.h> @interface ViewController : UIViewController{ //定义一个开关控件 //作用可以进行状态的改变 //开,关:两种状态可以切换 //所有UIKit框架库中的控件均已UI开头 //苹果官方的控件都定义在UIKit框架库中 UISwitch * _mySwitch; } @property(retain,nonatomic) UISwitch