2016.3.26圆周运动

/  MainViewController.m

//  EllipseTest1

//

//  Created by mac on 16/3/25.

//  Copyright © 2016年 mac. All rights reserved.

//

 

#import "MainViewController.h"

 

@interface MainViewController ()

 

@end

 

@implementation MainViewController

 

- (void)viewDidLoad {

    [super viewDidLoad];

    

    UIImageView *FireImageView = [[UIImageView alloc] init ];

    FireImageView.image = [UIImage imageNamed:@"fireball.png"];

    //fireball的bounds边界 // default bounds is zero origin, frame size. animatable bounds中只有宽width高height是可变的

    FireImageView.bounds = CGRectMake(0, 0,60 , 60);

    // // center is center of frame. animatable :center是CGPoint类型 可变

    FireImageView.center = CGPointMake(160, 240);

    //sele.view添加子视图FireImageView

    [self.view addSubview:FireImageView];

    

    //_smokeImageView是全局变量 (灰色球是要做圆周运动的)之所以设置为全局变量 是因为 我们在下面的move方法中要用到它  初学者有时候会对一个变量要不要设置为全局变量感到迷惑 可以试着先用局部变量做 如果后面要用到在改为全局变量

    _smokeImageView = [[UIImageView alloc] initWithFrame:CGRectMake(60, 60, 40, 40)];

    

    _smokeImageView.image = [UIImage imageNamed:@"smokeball.png"];

    [self.view addSubview:_smokeImageView];

    //定时器

   _timer =  [NSTimer scheduledTimerWithTimeInterval:.1 target:self selector:@selector(move ) userInfo:nil repeats:YES];

    //在开启定时器之后 立即调用所绑定的方法

    [_timer fire];

    

    

    

}

-(void)move

{

    _angle +=5;

    

    float x = 120 * cos(_angle * M_PI / 180) + 160;

    float y = 120 *sin(_angle * M_PI / 180) + 240;

    

    

    

    

    _smokeImageView.center = CGPointMake(x , y );

    

    [_smokeImageView startAnimating];

}

 

- (void)didReceiveMemoryWarning {

    [super didReceiveMemoryWarning];

    // Dispose of any resources that can be recreated.

}

 

 

 

- (IBAction)btnClick:(id)sender // 下面是两种方法

{

    

//    UIButton *btn = (UIButton *)sender;

   

//    

//    //_isStop默认为no

//    

//    if (_isStop == NO)

//    {

//    //废除定时器 定时器一旦废除就不能再用 永久性停止此时必须清空内存 否则导致内存泄露 

//    [_timer invalidate];

//    //设置_timer为空

//    _timer = nil;

//    //改变按钮名称

//    [btn setTitle:@"开始" forState:UIControlStateNormal];

//        //改变bool状态

//        _isStop = YES;

//    }

//    else

//    {

//        //从新开启一个定时器 此定时器与上面定时器已经不是同一个

//        _timer = [NSTimer scheduledTimerWithTimeInterval:0.1 target:self selector:@selector(move ) userInfo:nil repeats:YES];

//        

//        //改标题

//        [btn setTitle:@"暂停" forState:UIControlStateNormal];

//        //改变bool状态

//        _isStop = NO;

//     

//    }

    

    

    UIButton *btn = (UIButton *)sender;

    NSString *title = [btn titleForState:UIControlStateNormal];

    

    if ([title isEqualToString:@"停止"])

    {

        //定时器暂停

        [_timer  setFireDate:[NSDate distantFuture]];

        

        [btn setTitle:@"开始" forState:UIControlStateNormal];

        

        

    }

    else

    {

        //重新开启定时器 此处的定时器与上面定时器是同一个

        [_timer setFireDate:[NSDate distantPast]];

        

        [btn setTitle:@"停止" forState:UIControlStateNormal];

        

    }

    

    

    

    

  

    

    

}

@end

 

转载于:https://www.cnblogs.com/iOSos/p/5324178.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值