如何加快转变的iOS和塞格斯?(How do I speed up iOS transitions

2019-06-23 09:55发布

是否有可能设置一个属性的应用范围到iOS应用程序内翻一番转变的速度是多少?

Answer 1:

应用范围?

尝试设置在背衬层上的速度属性为您的视图控制器的内容视图。 速度= 2将是双倍速。 你也许可以在viewDidLoad方法对所有的视图控制器设置此。

您可能还可以创建一个UIWindow的自定义子类,并有一个窗口对象像makeKeyWindow瓶颈方法对其进行设置的视图层的速度属性为2.0。 你需要让所有的应用程序的一个UIWindow对象将您的自定义类。 我不得不做一些挖掘,以找出如何做到这一点。



Answer 2:

苹果没有一个简单的方法来改变这种状况,因为它将使转换太异种之间不同的应用程序。 你可能会增加一倍层的速度,但会弄乱你的动画的休息时间。 最好的办法是使用上UIViewControler类别,以实现自己的转型。

的UIViewController + ShowModalFromView.h

#import <Foundation/Foundation.h>
#import <QuartzCore/QuartzCore.h>

@interface UIViewController (ShowModalFromView)
- (void)presentModalViewController:(UIViewController *)modalViewController fromView:(UIView *)view;
@end

的UIViewController + ShowModalFromView.m

#import "UIViewController+ShowModalFromView.h"

@implementation UIViewController (ShowModalFromView)

- (void)presentModalViewController:(UIViewController *)modalViewController fromView:(UIView *)view {
    modalViewController.modalPresentationStyle = UIModalPresentationFormSheet;

// Add the modal viewController but don't animate it. We will handle the animation manually
[self presentModalViewController:modalViewController animated:NO];

// Remove the shadow. It causes weird artifacts while animating the view.
CGColorRef originalShadowColor = modalViewController.view.superview.layer.shadowColor;
modalViewController.view.superview.layer.shadowColor = [[UIColor clearColor] CGColor];

// Save the original size of the viewController's view    
CGRect originalFrame = modalViewController.view.superview.frame;

// Set the frame to the one of the view we want to animate from
modalViewController.view.superview.frame = view.frame;

// Begin animation
[UIView animateWithDuration:1.0f
                 animations:^{
                     // Set the original frame back
                     modalViewController.view.superview.frame = originalFrame;
                 }
                 completion:^(BOOL finished) {
                     // Set the original shadow color back after the animation has finished
                     modalViewController.view.superview.layer.shadowColor = originalShadowColor;
                 }];
}

@end

这可以很容易地改变使用任何你想要的动画过渡。 希望这可以帮助!



文章来源: How do I speed up iOS transitions and segues?