仪表盘

1.关于角度问题:

//图片旋转角度

//#define M_E         2.71828182845904523536028747135266250   /* e              */

//#define M_LOG2E     1.44269504088896340735992468100189214   /* log2(e)        */

//#define M_LOG10E    0.434294481903251827651128918916605082  /* log10(e)       */

//#define M_LN2       0.693147180559945309417232121458176568  /* loge(2)        */

//#define M_LN10      2.30258509299404568401799145468436421   /* loge(10)       */

//#define M_PI        3.14159265358979323846264338327950288   /* pi             */

//#define M_PI_2      1.57079632679489661923132169163975144   /* pi/2           */

//#define M_PI_4      0.785398163397448309615660845819875721  /* pi/4           */

//#define M_1_PI      0.318309886183790671537767526745028724  /* 1/pi           */

//#define M_2_PI      0.636619772367581343075535053490057448  /* 2/pi           */

//#define M_2_SQRTPI  1.12837916709551257389615890312154517   /* 2/sqrt(pi)     */

//#define M_SQRT2     1.41421356237309504880168872420969808   /* sqrt(2)        */

//#define M_SQRT1_2   0.707106781186547524400844362104849039  /* 1/sqrt(2)      */

//图片旋转方式

//    self.imgViewWheel.transform = CGAffineTransformMakeRotation(-M_PI_2);

//    self.imgViewWheel.transform = CGAffineTransformMakeRotation(-M_PI);

//    self.imgViewWheel.transform = CGAffineTransformMakeRotation(-M_1_PI);

//    self.imgViewWheel.transform = CGAffineTransformMakeRotation(-M_2_PI);

//    self.imgViewWheel.transform = CGAffineTransformMakeRotation(-M_2_SQRTPI);

//    self.imgViewWheel.transform = CGAffineTransformMakeRotation(-M_SQRT2);

//    self.imgViewWheel.transform = CGAffineTransformMakeRotation(-M_2_SQRTPI);

//    self.imgViewWheel.transform = CGAffineTransformMakeRotation(-M_2_SQRTPI);

//    self.imgViewWheel.transform = CGAffineTransformMakeRotation(-M_SQRT1_2);

2.关于旋转

    //测试转动

    //设置图片旋转速度(顺时针速度是M_PI_4 * 0.005)

    //    self.imgViewWheel.transform = CGAffineTransformRotate (self.imgViewWheel.transform, M_PI_4

    //    * 0.005);

  //开始角度

    // self.imgViewWheel.transform = CGAffineTransformMakeRotation (0);

    //中间角度

    // self.imgViewWheel.transform = CGAffineTransformMakeRotation (M_PI * 2 / 3);

    //结束角度

    // self.imgViewWheel.transform = CGAffineTransformMakeRotation (M_PI * 4 / 3);

3.关于线程和随机数

//每3秒执行一次线程

- (void)suijishu

{

    NSLog (@"每3s将输出一个随机数");

    // 在子线程中做事情

    dispatch_async (dispatch_get_global_queue (0, 0), ^{

      // 创建一个5s的定时器

      NSTimer *timer = [NSTimer timerWithTimeInterval:3

                                               target:self

                                             selector:@selector (test)

                                             userInfo:nil

                                              repeats:YES];

      // 需要将定时器添加到运行循环中

      [[NSRunLoop currentRunLoop] addTimer:timer forMode:NSDefaultRunLoopMode];

      // 在子线程中想要执行定时器,必须开启运行循环(这里就有一个死循环)

      [[NSRunLoop currentRunLoop] run];

      CFRunLoopRun ();

    });

}

//生成一个随机数

- (void)test

{

    //获取一个随机数范围在:[0,5)

    float abcd = (arc4random () % 501);

    self.num = M_PI * 4 * abcd / 1500;

    NSLog (@"指针刻度:"

           @"%.2f",

           abcd / 100);

    CFRunLoopStop (CFRunLoopGetCurrent ());

}

//让图片匀速旋转

//定义要旋转的View

{

 UIView * pointView;

}

- (void)viewDidLoad

{

      [self   start];

 }

//开始转动方法

- (void)start

{

    CADisplayLink *link = [CADisplayLink displayLinkWithTarget:self selector:@selector (rotate)];

    [link addToRunLoop:[NSRunLoop mainRunLoop] forMode:NSDefaultRunLoopMode];

    }

//转动角度,速度控制

- (void)rotate

{

   float num =  M_PI * 4*30;

    //设置图片旋转速度

    pointView.transform = CGAffineTransformMakeRotation (num);

}

原文地址:https://www.cnblogs.com/wangbinios/p/5173993.html