2011-02-09 5 views
0

전 iOS 프로그래밍을 처음 접했습니다. 그리고 나는 (아주 확실한) 매우 간단한 문제에 갇혀있다. 는 ... 내가 잘못하고있는 무슨UIView transitionFromView

- 내있는 viewDidLoad를 몰라 :

[super viewDidLoad]; 

CGRect frame = CGRectMake(0, 0, 768, 1024); 
UIView *uno=[[[UIView alloc] initWithFrame:frame] autorelease]; 
UIImageView *mainView = [[[UIImageView alloc] initWithFrame:frame] autorelease]; 
mainView.image = [UIImage imageNamed:@"photo.jpg"]; 
[uno addSubview:mainView]; 

UIView *dos=[[[UIView alloc] initWithFrame:frame] autorelease]; 
UIImageView *mainViewDos = [[[UIImageView alloc] initWithFrame:frame] autorelease]; 
mainViewDos.image = [UIImage imageNamed:@"Default.png"]; 
[dos addSubview:mainViewDos]; 
// 
[self.view addSubview:uno]; 
// 
[self anima:uno:dos]; 

그리고 내 아니마 방법 :

-(void) anima:(UIView *)uno:(UIView *)dos{ 
    [UIView transitionFromView:uno 
         toView:dos 
         duration:2.0 
         options:UIViewAnimationOptionTransitionFlipFromLeft 
        completion:nil]; 
} 

그것은보기를 변경하지만 전환하지 않고 .. .

당신은 당신의보기에서 애니메이션을 수행 할 수 없습니다

+0

Pleaseeeeeeeeeeeee .... – Roberto

답변

2

감사합니다 DidLoad - 거기에서 수행 한 뷰 변경은 뷰가 실제로 표시되기 전에 모두 실행됩니다. 이는 사용자가보고있는 것입니다.

보기를 처음 표시 할 때이 애니메이션을 표시하려고합니까? 그렇다면 타이머에 애니메이션을 넣어 작동시킬 수 있습니다. 이 방법을 사용하면 anima 메소드를 리팩터링하여 단일 인수를 취해야합니다. 당신의 viewDidLoad에서

:

NSDictionary *views = [NSDictionary dictionaryWithObjectsAndKeys:uno, @"uno", dos, @"dos", nil]; 
[self performSelector:@selector(anima) withObject:views afterDelay:0.1]; 

그런 다음에 anima 방법을 변경 :

-(void) anima:(NSDictionary *)views { 
    [UIView transitionFromView:[views objectForKey:@"uno"] 
         toView:[views objectForKey:@"dos"] 
        duration:2.0 
        options:UIViewAnimationOptionTransitionFlipFromLeft 
        completion:nil]; 
}