Es scheint, dass Sie einen Fade wollen und dann einen Fade-Out. Aber Zeit, um nach einer Dauer zu treten. Nicht nur die Dauer der Animationen selbst.
Ich mache nicht normal Sachen für iOS, also vergib mir, wenn ich den Code an der falschen Stelle habe.
Dies wurde am Simulator und in einer einzigen Ansicht-Anwendung getestet.
Ich habe eine neue UIview zur UIView des ViewControllers hinzugefügt und diese mit ihrer .h-Datei als Outlet verknüpft. (nannte es theView)
Dann eine UImageView der neuen UIView (theView) hinzugefügt und ein Bild für die UImageView mit dem Attribut Inspektor festlegen.
hinzugefügt Dann Code in die Datei ViewController.m.
Die Hauptsache ich möchte Ihnen zeigen, ist die
- (void)performSelector:(SEL)aSelector withObject:(id)anArgument afterDelay:(NSTimeInterval)delay
, die ein Verfahren des Empfängers auf den aktuellen Thread nach einer Verzögerung mit dem Standard-Modus aufruft.
(Es gibt ähnliche Methoden, die auf anderen Threads ausführen kann ...)
I zwei Methoden ein vorgenommen haben, die in ein und verblasst, die aus verblaßt.
Es gibt zwei performSelectors.
Die erste wird aufgerufen, wenn die Ansicht geladen wird.
Die Sekunde ist im fadeIn Animationsblock. Sie können dies in der viewDidLoad oder nach dem Block platzieren. Aber ich dachte, es wäre sicherer, es dort zu haben, wo es ist.
Hier ist der .m-Dateicode.
#import "ViewController.h"
@interface ViewController()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
_theView.alpha = 0.0;
[self performSelector:@selector(fadeIn) withObject:nil afterDelay:2.0];
}
- (void)fadeToBlack
{
[UIView animateWithDuration:3.0
delay:0.0
options:UIViewAnimationOptionCurveEaseIn
animations:^{_theView.alpha = 0.0;}
completion:nil];
}
- (void)fadeIn
{
[UIView animateWithDuration:3.0
delay:0.0
options:UIViewAnimationOptionCurveEaseIn
animations:^{_theView.alpha = 1.0; [self performSelector:@selector(fadeToBlack) withObject:nil afterDelay:10.0];}
completion:nil];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
Ich erwarte hier Korrekturen ... da dies ich mit (Viewcontrollers) nicht wirklich ein Bereich ist, bin voll vertraut Aber seine Werke in der SIM-ok.