2016-04-06 6 views
0

Ich habe einen Bildschirm, nennen Sie es Video-Bildschirm, wo ein Video mit Details und Kommentaren wie youtube gezeigt wird. Nun ist diese Ansicht verschiebbar, dh wenn der Benutzer den Bildschirm verschiebt, wird das nächste oder vorherige Video angezeigt, indem die gesamte Inhaltsansicht geändert wird.Wie kann man eine einzelne UIView mit gleitenden Animationen versehen?

Ich verwende [UIView transitionWithView], um es gleitende Wirkung zu geben. Indem ich den Rahmen der Inhaltsansicht ändere, wische ich den richtigen Code wie unten.

[UIView transitionWithView:viewTop duration:0.4 
         options:UIViewAnimationOptionTransitionCrossDissolve 
        animations:^{ 
         viewTop.frame = CGRectMake(SCREEN_WIDTH, viewTop.frame.origin.y, viewTop.frame.size.width, viewTop.frame.size.height); 
        } 
        completion:^(BOOL Finished){ 

         [self getNextVideoDetail]; 
         viewTop.frame = CGRectMake(-SCREEN_WIDTH, viewTop.frame.origin.y, viewTop.frame.size.width, viewTop.frame.size.height); 

         [UIView transitionWithView:viewTop duration:0.3 
            options:UIViewAnimationOptionTransitionCrossDissolve 
           animations:^{ 
            viewTop.frame = CGRectMake(0, viewTop.frame.origin.y, viewTop.frame.size.width, viewTop.frame.size.height); 
           } 
           completion:nil 
        ]; 

        }]; 

Hier ist viewTop meine Inhaltsansicht. Alles funktioniert gut, aber ich möchte, dass, wenn ich den Bildschirm nach links schiebe, bevor die Ansicht vollständig verschwindet, ein Teil der Ansicht auf der rechten Seite angezeigt werden soll. Weil der Code, den ich oben geschrieben habe, weiß self.view und Bildschirm wird für einige Millisekunden leer sein.

Ist es mit nur einem UIView möglich, Videos wie Spiegeleffekt zu navigieren? diese

Antwort

1

Verwendung:

CATransition *transition = [CATransition animation]; 
transition.type = kCATransitionPush; 
transition.subtype = kCATransitionFromLeft; 
transition.duration = 0.4; 
[viewTop.layer addAnimation:transition forKey:nil]; 
+0

danke, gespeichert Sie meinen Tag :) –

+0

Client nicht den Übergang gefallen hat, wie die Wirkung wie Fading war. Das Flackern verursacht beim Gleiten. Ich möchte glatte Animationen wie beim Mac, wenn ich durch die Arbeitsfenster gleite. –

+0

Dann können Sie versuchen, alle Ihre Ansichten in einer Scrollansicht hinzuzufügen, die Ihnen automatisch den gewünschten Animationseffekt beim Scrollen bietet. Sie müssen 'scrollview.pagingEnabled = YES einstellen;' – Nishant

Verwandte Themen