вращение UIImageView с основной анимацией - PullRequest
2 голосов
/ 12 апреля 2011

Я пытаюсь сделать что-то относительно простое, повернуть колесо на 90 градусов, когда пользователь касается кнопки, по большей части то, что я сделал до сих пор, работает в первый раз, но после этого изображение не будет двигаться. Я хочу, чтобы он сохранил свою новую позицию и повернул на 90 градусов после этого от новой позиции, у меня есть [UIView setAnimationBeginsFromCurrentState: YES];

но это не похоже на работу

Я добавил NSTimer, чтобы «сбросить» исходную ориентацию изображения, чтобы колесо возвращалось в исходное положение, а затем снова вращалось, когда пользователь прикасался к нему. ... однако это не совсем то, что я хочу.

Есть ли способ заставить изображение продолжать вращаться на 90 градусов, чтобы четыре касания пользователем вернули изображение в исходное положение. Спасибо за любую помощь !!

вот пример кода


-(IBAction) rotatewheel:(id)sender {

      [UIView setAnimationDuration:1];
    [UIView setAnimationBeginsFromCurrentState:YES];
    [UIView setAnimationRepeatCount:1];
    wheel.transform = CGAffineTransformMakeRotation(M_PI/4);
    [UIView commitAnimations];  

    returnwheelTimer = [NSTimer scheduledTimerWithTimeInterval:1.1 target:self selector:@selector (returnwheel) userInfo:nil repeats:NO];

}

-(void) returnwheel {

    [UIView beginAnimations:nil context:NULL];

    [UIView setAnimationDuration:.5];
    [UIView setAnimationBeginsFromCurrentState:YES];
    [UIView setAnimationRepeatCount:1];
    wheel.transform = CGAffineTransformMakeRotation(M_PI);
    [UIView commitAnimations];  

}

Ответы [ 2 ]

8 голосов
/ 12 апреля 2011

Вместо:

wheel.transform = CGAffineTransformMakeRotation(M_PI/4);

использовать

wheel.transform = CGAffineTransformRotate(wheel.transform,M_PI/4);

Таким образом, он будет применять новое преобразование к текущему вместо его замены.

0 голосов
/ 02 октября 2012

Для этого есть три простых способа.
1) Создайте свое приложение в игровом движке, например Unity3D, а не в XCode.Создайте анимацию вращающегося колеса и запустите его, нажав на кнопку.Это относительно просто сделать, и есть много хороших существующих учебных пособий.Я рекомендую использовать iGUI от Avaam Studios (я не связан с ними и не склонен каким-либо образом).

2) Создайте NSObject с массивом фотографий и запустите анимацию остановки движения при вращении колеса на кнопкеОт себя.Нить на эту тему можно найти здесь .

3) Если вы хотите, чтобы колесо вращалось на 90 градусов от своего последнего положения, чтобы оно могло вращаться по кругу (36) после четырех щелчков, то необходим другой подход.Я рекомендую заменять кнопку на новую, идентичную при каждом нажатии.Таким образом, вам не нужно делать математику на количество толчков.У вас будет четыре разных IBOutlets (по одному для каждой идентичной кнопки), и каждая кнопка будет а) повернет изображение на 90 градусов, затем б) исчезнет и будет заменена другой кнопкой.Я не видел никаких практических реализаций этого, но это выполнимо. Здесь - тема на тему нескольких методов для одной кнопки (возможно, лучшая альтернатива моей идее).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...