Поворот UIView на основе позиции в суперпредставлении - PullRequest
1 голос
/ 02 сентября 2011

У меня есть UIImageView, это изображение стрелки. Я добавил это представление в родительское представление с рамкой размером 500x500. Я хочу повернуть UIImageView так, чтобы стрелка всегда указывала на центр его родителя, когда пользователь касается и перемещает его.

Я изучал CGAffineTransform и тригонометрические повороты, но у меня проблемы с началом работы. Кто-нибудь может дать некоторое представление?

Спасибо!

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event {    
    UITouch *touch = [touches anyObject];
    CGPoint point = [touch locationInView:self];

    pointerView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"pointer.png"]];        
    pointerView.layer.anchorPoint = CGPointMake(0, 0.5);    
    pointerView.center = point;

    [self setPointerRotation];

    [self addSubview:pointerView];
    [pointerView release];
}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event {    
    UITouch *touch = [touches anyObject];   
    CGPoint point = [touch locationInView:self];   

    pointerView.center = point;
    [self setPointerRotation];
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event {
    [pointerView removeFromSuperview];
    pointerView = nil;
}

- (void)setPointerRotation {
    CGAffineTransform transform = // calculate rotation so that pointerView points to the center of the superview
    pointerView.transform = transform;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...