我正在附加圖像到MFMailComposeViewController
一切都很好,但我想知道這是可能給附件的動畫?iOS:是否可以使用動畫技術來處理MFMailComposeViewController?
例如: -當我們在iPhone設備中添加圖片庫中的圖片時。並選擇郵件按鈕,所有選定的圖片移動在MailComposeViewcontroller
與尼斯動畫。
所以,請任何好友指導我這個東西是否可能。如果是,那麼我如何設置附件動畫。
我正在附加圖像到MFMailComposeViewController
一切都很好,但我想知道這是可能給附件的動畫?iOS:是否可以使用動畫技術來處理MFMailComposeViewController?
例如: -當我們在iPhone設備中添加圖片庫中的圖片時。並選擇郵件按鈕,所有選定的圖片移動在MailComposeViewcontroller
與尼斯動畫。
所以,請任何好友指導我這個東西是否可能。如果是,那麼我如何設置附件動畫。
這是iOS自定義動畫效果,並沒有公開爲iOS API,所以沒有你無法獲得這種效果。我知道這個效應沒有暴露給開發者的原因是Apple iOS 6 Docs。只有一種方法處理animate
及其標準。
你可以嘗試的是這個。在用戶從他的照片庫(即從ALAssetsLibrary
)中選擇圖像後,可以爲看起來像MFMailComposeViewController
的「圖像」創建動畫。該動畫將與iOS提供的類似,即出現背景淡入淡出,MFMailComposeViewController
以及位於郵件「正文」部分的圖像。一旦動畫完成,請刪除MFMailComposeViewController
的「圖像」,並顯示使用animaiton:FALSE
選項調用的實際呼叫MFMailComposeViewController
。希望我清楚。基本上你所提供的是一種幻覺MFMailComposeViewController
,一旦動畫完成,帶走錯覺並展示現實。
從理論上講,這可能工作,但確切的動畫時間和用戶感知的感覺必須進行測試。
很好的解釋。可能會很難實現..? –
@NitinGohel的實現並不難。但是你可能不得不動用動畫的時間來獲得正確的效果,這樣用戶就不會感覺到這種轉變。請不要叫我先生!那是什麼人稱我的爺爺! –
最後一條建議。仔細研究ios動畫。仔細觀察哪些元素正在移動/變化/褪色/消失/計時等等。記下它並嘗試將其複製到您的代碼中。它應該很有趣! –
存在一些半解決方案。事實上,您可以添加任何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];
}];
}];
當然,代碼可能需要一些調整和拋光,但它顯示的概念。你可以玩動畫來產生更好的效果。我會添加很多動畫調整,但我想保持示例代碼儘可能短;-)
不,不可能。 – sagarcool89
不默認。 – Jasper
看到我的答案。它不可能做與蘋果電子郵件完全相同的東西,但你至少可以模擬類似的效果 –