是否有可能设置一个属性的应用范围到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?