【问题标题】:How to display an intro screen in iPhone that rolls down on app launch?如何在 iPhone 中显示一个在应用启动时向下滚动的介绍屏幕?
【发布时间】:2011-10-14 04:41:15
【问题描述】:

我在 Xcode 中设置了“启动图像”,当 iPhone 应用程序启动时显示“正在加载...”屏幕。现在,一旦应用程序启动,我想以编程方式显示一个幻灯片动画,其中包含相同的图像以显示下面的应用程序内容 - 非常类似于 Dropbox for iPhone 所做的。 最简单的方法是什么?

【问题讨论】:

  • ,你能再解释一下吗..
  • @Prajan:您可以设置在后台加载应用程序时显示的启动图像,一旦加载完成,该图像就会消失以显示应用程序内容。我想通过添加滑出效果来使这种过渡对眼睛更平滑

标签: iphone ios xcode uiviewcontroller


【解决方案1】:

获取一个导航控制器并将其放入 appdelgate.xib 并在加载后显示该类的哪个视图在进入 appdelegate.h 文件后设置在它们上,然后创建导航控制器的对象,然后进入 appdelegate.m 文件下面的代码来实现。

- (void)applicationDidFinishLaunching:(UIApplication *)application {    

    // Override point for customization after app launch    
        [window addSubview:viewController.view];
    [self performSelector:@selector(nextDetail)  withObject:nil afterDelay:2];  
        [window makeKeyAndVisible];
}

-(void)nextDetail{
    [window addSubview:nxtVctr.view];
    [self animationCode];

}

-(void)animationCode{
    CGContextRef context = UIGraphicsGetCurrentContext();
    [UIView beginAnimations:nil context:context];
    [UIView setAnimationTransition: UIViewAnimationTransitionFlipFromLeft forView:self.window cache:YES];
    [UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
    [UIView setAnimationDuration:0.5];
    [UIView commitAnimations];
}

【讨论】:

    【解决方案2】:

    在 interface builder 或 loadView 中,如果您使用代码构建主视图,请添加 UIImageView 作为主视图的子视图,并将其框架设置为填满整个屏幕。让它成为最顶层的视图。假设您有一个名为 launchImageView 的出口。

    在 viewDidLoad 中

    [UIView animateWithDuration:1.0
            animations:^{
                self.launchImageView.center = CGPointMake(self.launchImageView.center.x,
                                                              self.launchImageView.center.y + 480.0);    
            }
            completion:^(BOOL finished){
                [self.launchImageView removeFromSuperview];
                self.launchImageView = nil;
            }
    ];
    

    【讨论】:

    • 如何确保仅在应用启动时呈现此动画,而不是在每次加载视图时呈现?
    • 好点。将if (self.launchImageView) 添加到动画块的开头。由于动画完成后它被设置为 nil,所以它不会再次运行。我将编辑我的答案。
    • 糟糕,这行不通。 loadView 或重新加载 nib 将再次设置 launchImageView。只需设置一个标志或其他东西。
    • +1 建议一个可行的解决方案,但我更喜欢使用 applicationDidFinishLaunching 的另一个解决方案
    猜你喜欢
    • 1970-01-01
    • 2020-12-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多