CGAffineTransformMakeRotate不起作用 - UIImageView - iOS.



为了一点乐趣和练习,我正在尝试制作一个简单的模拟时钟iOS应用程序。无论如何,我对CGAffineTransformMakeRotation有问题,它只是不起作用。首先,我正在旋转秒针。但它只是把手放在同一个地方。

那么我该怎么做呢?

在一个圆圈中有 360 度,所以每秒有 (60/360) 0.16666666666 度。

然后,

我将其转换为弧度,然后乘以当前的秒数。但它并没有真正起作用:(

这是我的代码:

-(void)update_the_timer {
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"hh:mm:ss a"];
time_label.text = [formatter stringFromDate:[NSDate date]];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormat:@"hh:mm:ss"];
NSString *test = [dateFormatter stringFromDate:[NSDate date]];
NSDate *time = [dateFormatter dateFromString:test];
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateComponents *components = [calendar components:(NSCalendarUnitHour | NSCalendarUnitMinute | NSCalendarUnitSecond) fromDate: time];
NSInteger seconds = [components second];

// Convert degrees to radians: x * M_PI/180.0
float number = ((0.16666666666 * (M_PI/180.0)) * seconds);
NSLog(@"%f", number);
[UIView animateWithDuration:1.0 animations:^{
    second_handle.transform = CGAffineTransformMakeRotation(number);
}];
}

我做错了什么??

谢谢你的时间,丹:)

我认为你只需要在转换为弧度之前将秒数计算在头上,每秒有 6 度:

float number = (M_PI/180.0) * seconds * 6;

最新更新