我正在构建一个应用程序。对于启动画面,我刚刚将default.png带入了资源文件夹,并将睡眠时间设置为AppDelegate.m。到这里它工作正常,我的应用程序正在使用启动屏幕启动给定秒。现在我想更改翻转启动画面的ViewTransition。我怎么能这样做?
由于
答案 0 :(得分:4)
只需使用uiimageview添加视图并将其图像设置为default.png。在开头加载此视图。启动屏幕后卸载此shuld是您查看然后翻转它。
答案 1 :(得分:2)
您无法使用default.png进行翻转过渡,尝试在窗口中添加包含该图像的视图,并将过渡应用于该视图。
答案 2 :(得分:2)
你不能使用deafult.png图像将渐变样式赋予启动画面。使用启动图像创建另一个UIViewController,只需使用所需的过渡样式和时间关闭此视图控制器。
答案 3 :(得分:2)
在启动屏幕加载后。只需用新的UIImageView替换它并设置翻转过渡。
答案 4 :(得分:1)
以上所有人都对两件事情是正确的:
我。您无法将过渡添加到Default.png II。您需要添加UIView(或UIImageView)才能添加转换。
以下是您可以使用的示例代码:
@interface AppDelegate: .... {
...
@property (strong, nonatomic) UIImageView *splashView;
...
@end
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions: (NSDictionary *)launchOptions
{
// fade Default.png into next screen
self.splashView = [[UIImageView alloc] initWithFrame:
CGRectMake(0, 0, self.window.frame.size.width, self.window.frame.size.height)];
// get the right image (does not work on simulator)
if ([[UIDevice currentDevice] userInterfaceIdiom] == UIUserInterfaceIdiomPhone)
self.splashView.image = [UIImage imageNamed:@"Default.png"];
else {
[[UIDevice currentDevice] beginGeneratingDeviceOrientationNotifications];
if (UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation]))
self.splashView.image = [UIImage imageNamed:@"Default-Landscape.png"];
else
self.splashView.image = [UIImage imageNamed:@"Default-Portrait.png"];
[[UIDevice currentDevice] endGeneratingDeviceOrientationNotifications];
}
if (self.splashView) {
[self.window.rootViewController.view addSubview:self.splashView];
[self.window.rootViewController.view bringSubviewToFront:self.splashView];
[UIView beginAnimations:nil context:nil];
[UIView setAnimationDuration:0.5];
[UIView setAnimationTransition:UIViewAnimationTransitionNone forView:self.window cache:YES];
[UIView setAnimationDelegate:self];
[UIView setAnimationDidStopSelector:@selector(startupAnimationDone:finished:context:)];
self.splashView.alpha = 0.0;
[UIView commitAnimations];
}
return YES;
}
注意我如何使用上面的setAnimationTransition:UIViewAnimationTransitionNone。 此外,您可以使用委托自定义(基本上从超级视图中删除splashView)。