Попытка стандартизировать анимацию UIView в моем приложении, и это не работает - PullRequest
1 голос
/ 20 декабря 2011

У меня один и тот же код анимации, примененный к различным представлениям в моем объекте, поэтому я подумал, что стандартизирую его своим собственным классом.Вот код, который у меня есть:

.h

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

@interface AHAnimations : NSObject

+(void)popInView:(UIView *)view;

@end

.m

#import "AHAnimations.h"

@implementation AHAnimations

+(void)popInView:(UIView *)view {

    view.alpha = 0;
    view.transform = CGAffineTransformMakeScale(0.9, 0.9);
    [UIView animateWithDuration:0.3
                          delay:0
                        options:UIViewAnimationOptionAllowUserInteraction
                     animations:^{
                         view.alpha = 1;
                         view.transform = CGAffineTransformMakeScale(1, 1);
                     }completion:nil];
}

@end

Но вместо анимации вид просто появляется.

Есть идеи, почему это не работает?

РЕДАКТИРОВАТЬ: оригинальный код точно такой же.Я могу вставить его, но кроме того, что я использую другое имя метода, я бы просто скопировал и вставил его сверху.А теперь это просто [AHAnimations popInView:view];

Ответы [ 3 ]

0 голосов
/ 20 декабря 2011

Этот код не будет работать, вы можете использовать свойство CAAnimationGroup или CABasicAnimation: fromValue, byValue, toValue.

Кроме того, вы можете реализовать это так, что легче понять,

//go
- (void)stepOne{

    [UIView beginAnimations:@"" context:nil];
    [UIView setAnimationDuration:0.2];
    [UIView setAnimationDelegate:self];
    [UIView setAnimationDidStopSelector:@selector(stepTwo)];

    view.alpha = 0;
    view.transform = CGAffineTransformMakeScale(0.9, 0.9);

    [UIView commitAnimations];
}

//back
- (void)stepTwo{

    [UIView beginAnimations:@"" context:nil];
    [UIView setAnimationDuration:0.1];
    view.alpha = 1;
    view.transform = CGAffineTransformMakeScale(1, 1);    
    [UIView commitAnimations];
}

Есть также много оригинальных анимаций перехода, вы можете проверить их.

0 голосов
/ 20 декабря 2011
  UIView *myview=[[UIView alloc] init];
  [myview setFrame:CGRectMake( 50.0f, 50.0f, 280.0f, 400.0f)];
  [UIView commitAnimations]; 
  [UIView beginAnimations:@"animateTableView" context:nil];
  [UIView setAnimationDuration:0.7];
  [myview setFrame:CGRectMake( 5.0f, 70.0f, 310.0f, 350.0f)];

// CALL Эта строка для остановки анимации

 [myview.layer removeAllAnimations];
 [UIView commitAnimations];
0 голосов
/ 20 декабря 2011

+[UIView animateWithDuration ... не анимация всех свойств, хотя alpha должно работать ...

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