如何让我的imageview旋转到iPhone中心的视角?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何让我的imageview旋转到iPhone中心的视角?相关的知识,希望对你有一定的参考价值。

我有时钟应用程序,我已将自定义图像添加到时钟指针(分钟和小时)。当我运行应用程序时,我的分针顺时针旋转正常,但问题是imageview不会围绕视图中心旋转;它绕着自己旋转。

#import "AnalogClocktestViewController.h"

@implementation AnalogClocktestViewController

#import <QuartzCore/QuartzCore.h>
#import <QuartzCore/CALayer.h>
#import <QuartzCore/CoreAnimation.h>

@synthesize digitalswitch;
@synthesize hourimage;
@synthesize minuteimage;
@synthesize backimage;
@synthesize clockLabel;


- (void) showActivity {
    NSCalendar *gregorian = [[NSCalendar alloc]
                             initWithCalendarIdentifier:NSGregorianCalendar];
    unsigned unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit |
    NSDayCalendarUnit | NSHourCalendarUnit| NSMinuteCalendarUnit
    |NSSecondCalendarUnit;
    NSDate *date = [NSDate date];
    NSDateComponents *comps = [gregorian components:unitFlags fromDate:date];
    int h = [comps hour];
    int m = [comps minute];

    time_hour = h * 30*-1;
    time_minut = m * 6*-1;
        CGAffineTransform cgaRotateHr  =
    CGAffineTransformMakeRotation(time_hour);
    CGAffineTransform cgaRotateMin =
    CGAffineTransformMakeRotation(time_minut);

    //Looks awful but it works (PNGs with transparency have blocked edges)
    [hourimage setTransform:cgaRotateHr];
//hourimage is the imageview for hourhand of clock
    [minuteimage setTransform:cgaRotateMin];
//minuteimage is the imageview for minute hand of clock.


    NSDateFormatter *formatter = [[[NSDateFormatter alloc] init] autorelease];
    [formatter setTimeStyle:NSDateFormatterMediumStyle];
    [clockLabel setText:[formatter stringFromDate:date]];
}




-(void)startClockUpdates
{
    [self showActivity];
    timer = [NSTimer scheduledTimerWithTimeInterval:0.5 target:self selector:@selector(showActivity) userInfo:nil repeats:YES];
}

// Implement viewDidLoad to do additional setup after loading the view, typically from a nib.
- (void)viewDidLoad {
    [super viewDidLoad];
    [self startClockUpdates];

}







- (void)dealloc {
    [super dealloc];
}

@end
答案

亚历克斯答案的补充 -

如果您的图片如下所示:

_________
|   ^   |
|   |   |
|   |   |
|___0___|

看起来像这样:

_________
|   ^   |
|   |   |
|   |   |
|   0   |
|       |
|       |
|_______|

这样时钟指针的中心位于图像的中心。然后,它应该围绕中心旋转。

另一答案

您可以制作两倍大小的图像,并在另一侧使用alpha,因此可能会围绕中心旋转。

以上是关于如何让我的imageview旋转到iPhone中心的视角?的主要内容,如果未能解决你的问题,请参考以下文章

iPhone:如何向左或向右旋转 UIImageview?

Android:ImageView旋转动画 - 保持比例类型适合中心

iOS开发 在imageView不变的情况下,让imageView里的图片旋转90°

ScrollView 和 ImageView - 多次设备旋转后图像未居中

Swift 3 - 旋转图像在 ImageView 中无法正确显示

iPhone:如何防止视图旋转到横向视图?