2013-06-26 5 views
5

MFMailComposeViewController에 이미지를 첨부하고 있습니다. 모든 것이 잘 작동하지만 그 사실을 알고 싶습니다. 첨부 파일의 애니메이션을 제공 할 수 있습니까?iOS : 애니메이션이 포함 된 MFMailComposeViewController를 가져올 수 있습니까?

예 : - iPhone 장치의 사진 갤러리에서 이미지를 첨부 할 때. 그리고 메일 선택 버튼은 선택한 이미지가 모두 움직이는 것입니다. 은 니스 입니다. 애니메이션은입니다.

제발 어떤 친구도이 물건을 사용할 수 있는지 알려주세요. YES이면 첨부 파일의 애니메이션을 어떻게 설정할 수 있습니까?

+0

아니요, 불가능합니다. – sagarcool89

+0

기본적으로 설정되어 있지는 않습니다. – Jasper

+0

내 대답보기. 애플 메일과 똑같은 일을 할 수는 없지만 적어도 비슷한 효과를 시뮬레이션 할 수는 있습니다 –

답변

1

iOS 맞춤 애니메이션 효과이며 iOS API로 노출되지 않으므로 사용자가이 효과를 얻을 수 없습니다. 이 효과가 개발자에게 노출되지 않은 이유는 Apple iOS 6 Docs입니다. animate과 그 표준을 다루는 유일한 방법이 있습니다.

당신이 시도 할 수있는 것은 이것입니다. 사용자가 자신의 사진 갤러리에서 이미지 (예 : ALAssetsLibrary)를 선택하면 MFMailComposeViewController처럼 보이는 "이미지"를 움직일 수 있습니다. 애니메이션은 iOS가 제공하는 것과 유사합니다. 즉, 백그라운드 페이딩 인 MFMailComposeViewController이 나타나고 이미지가 메일의 '본문'섹션에 있습니다. 애니메이션이 완료되면 MFMailComposeViewController의 '이미지'를 제거하고 animaiton:FALSE 옵션으로 호출 된 MFMailComposeViewController의 실제 호출을 표시합니다. 나는 분명했다. 본질적으로 당신이 제공하는 것은 MFMailComposeViewController의 환상이며 일단 애니메이션이 완료되면 환상을 없애고 현실을 보여줍니다.

이론적으로 이것은 작동하지만 정확한 애니메이션 타이밍과 사용자가 느끼는 느낌을 테스트해야합니다.

+0

좋은 설명. 그게 구현하기가 힘들지는 .. ..? –

+0

@NitinGohel 구현은 그다지 어렵지 않습니다.하지만 효과를 제대로 얻으려면 애니메이션 타이밍을 가지고 놀아야하기 때문에 사용자는 교대감을 느끼지 못할 수도 있습니다. 제발 전화하지 마세요. 그게 사람들이 내 할아버지라고 부르는거야 !! –

+0

하나의 마지막 조언. 신중하게 애니메이션을 공부하십시오. 어떤 요소가 움직이고 있는지/변색/사라짐/사라지는 지/타이밍 등을 면밀히 관찰하십시오. 코드를 메모하고 코드에 복제 해보십시오.재미 있어야합니다! –

2

일부 반 솔루션이 있습니다. 실제로 UIView을 기본 앱의 하위보기로 추가 할 수 있습니다. 모든 앱 콘텐츠 위에 위치 할 것입니다. 이것을 사용하면 을 시뮬레이션 할 수 있습니다. 이미지를 첨부하는 이미지 MailComposeViewcontroller

예제 코드를 참조하십시오. 이 코드는 이미지 뷰를 화면 상단에서 메일 작성자로 슬라이드시켜 첨부 파일로 이미지 추가를 모방합니다. 모든 것이 주석 처리됩니다.

// Get apps main window 
UIWindow *window = [[UIApplication sharedApplication] keyWindow]; 

// Setup frames of animated image view in apps window - adjust to your needs 
CGRect finalImageFrame = CGRectMake(30, 220, window.frame.size.width-60, 100); 
CGRect initialImageFrame = finalImageFrame; 
initialImageFrame.origin.y = -initialImageFrame.size.height; 

// Create image view to be animated as attachment 
UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"myImage"]]; 
imageView.frame = initialImageFrame; 
imageView.backgroundColor = [UIColor redColor]; 

// Add animated image view to window 
[window addSubview:imageView]; 

// Animate image view with slide in from top 
[UIView animateWithDuration:0.4 
       animations:^{ 
        imageView.frame = finalImageFrame; 
       }]; 

// Present mail composer 
[self presentViewController:mailComposer animated:YES completion:^{ 

    // Once the controller appears, hide the image view - adjust this animation according to you needs 
    [UIView animateWithDuration:0.4 
        animations:^{ 
         imageView.alpha = 0; 
        } completion:^(BOOL finished) { 
         [imageView removeFromSuperview]; 
        }]; 

}]; 

물론 코드에는 약간의 조정과 연마가 필요할 수 있지만 개념을 보여줍니다. 애니메이션으로 게임을하면 더 나은 효과를 낼 수 있습니다. 추가 할 애니메이션 조정이 많이 있지만 예제 코드를 짧게 유지하려고합니다 .-