Esiste una semi-soluzione. In effetti puoi aggiungere qualsiasi UIView
come subview della finestra dell'app principale. Sarà in cima al contenuto di tutte le app. Utilizzando questo è possibile simulare l'animazione di allegare l'immagine a MailComposeViewcontroller
Vedere il mio codice di esempio. Questo codice consente di scorrere la visualizzazione delle immagini dalla parte superiore dello schermo per comporre il compositore di posta in modo che imiti l'aggiunta di un'immagine come allegato. Tutto è commentato
// 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];
}];
}];
Naturalmente il codice potrebbe essere necessario qualche aggiustamento e la lucidatura, ma mostra il concetto. Puoi giocare con le animazioni per ottenere un effetto migliore. Ci sono molte modifiche all'animazione che aggiungerei, ma volevo mantenere il codice di esempio il più breve possibile ;-)
fonte
2013-06-26 13:58:47
no, non possibile. – sagarcool89
Non di default. – Jasper
Vedi la mia risposta. Non è possibile fare esattamente la stessa cosa che fa la posta di Apple, ma è possibile almeno simulare un effetto simile –