2012-05-22 4 views
0

내 iPhone 앱에서는 투명한 배경을 가진 모달보기를 표시해야하며 뷰의 중심에 나타나고 크기가 커지는 것처럼 애니메이션과 함께 표시되어야합니다.애니메이션 효과가있는 현재 모달보기

"드로잉 무언가"아이폰 ​​앱과 비슷하게 설정 버튼을 클릭하면됩니다.

어떻게하면됩니까?

답변

3

당신은 4 개 다음 전환 스타일 중 하나를 수행 할 수 있습니다

viewController.modalTransitionStyle = UIModalTransitionStyleCoverVertical; 
viewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve; 
viewController.modalTransitionStyle = UIModalTransitionStyleFlipHorizontal; 
viewController.modalTransitionStyle = UIModalTransitionStylePartialCurl; 

[self presentModalViewController:viewController animated:YES]; 

당신이 모달보기를 제시하기위한 자신 만의 애니메이션을 구축해야 할 것이 기본값에 포함되지 않은 무언가를 원하는 경우에

. 다음과 같지만 분명히 원하는 스타일에 해당합니다.

UIModalTransitionStyle horizontal movement

0

아니 전체 대답은,하지만 어쩌면 당신이 오픈 소스 라이브러리를 살펴 수 있습니다

https://github.com/Split82/HMGLTransitions

그것은 일부 사용자 지정 모달 전환, 당신은 아마 정확히 하나를 가지고 찾고 싶지만 서브 클래스를 HMGLTransition으로 지정하여 쉽게 전환을 추가 할 수 있습니다.

희망이

3

이의 당신이 제시 할 aScoreSheet라는의 ViewController 이잖아 있다고 가정 해 봅시다 도움이됩니다. 프리젠 테이션을 수행 할 뷰 컨트롤러에서이 메서드를 정의 해 봅니다.

-(void) presentTransparentModalViewController: (ScoreSheet *) aViewController 
{ 

    scoreSheet = aViewController; 
    UIView *view = aViewController.view; 

view.opaque = NO; 
[view.subviews enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) { 
    UIView *each = obj; 
    each.opaque = NO; 
}]; 
    [self.view addSubview:view]; 

    view.center = CGPointMake(160, 800); //for iPhone 

    [UIView animateWithDuration:0.9 delay:0 options:UIViewAnimationCurveEaseInOut animations:^{ 
     view.center = CGPointMake(160, 240); 
    } completion:^(BOOL finished) { 

     self.view.userInteractionEnabled=YES; 
    }]; 

} 

다음 제어기 기각 :

-(void) dismissTransparentModalViewControllerAnimated:(BOOL) animated{ 

if (animated) { 

    [UIView animateWithDuration:0.4 
        animations:^{ 
         scoreSheet.view.center = CGPointMake(scoreSheet.view.center.x, scoreSheet.view.center.y + 480); 
        } completion:^(BOOL finished) { 
         [scoreSheet.view removeFromSuperview]; 
         scoreSheet = nil; 
        }]; 
} 


} 
관련 문제