3

我想在应用程序加载数据时在启动屏幕上显示 GIF 图像。

我的初始图像显示至少大约 3 或 4 秒,这就是为什么我想在初始图像上显示加载文本(如 gif 图像),以便用户认为应用程序正在加载。

4

3 回答 3

2

只需在您的初始图像中添加一个标签,然后NSTimer定期更改它的文本,如下所示

splash = [[UIImageView alloc] initWithFrame:self.window.frame];
splash.image = [UIImage imageNamed:@"splash"];
[self.window addSubview:splash];

这是我用来显示初始屏幕的代码,然后

NSTimer *loading = [[NSTimer alloc]init];
[loading performSelector:@selector(YOUR_SELECTOR) withObject:YOUR_LABEL afterDelay:0.3f];

whereYOUR_SELECTOR是设置标签文本的方法,是设置文本YOUR_LABEL的标签

编辑 抱歉NSTimer实际上我使用了带有文本加载的活动指示器...在application:didFinishLaunchingWithOptions:方法中

它的代码是

splash = [[UIImageView alloc] initWithFrame:self.window.frame];
splash.image = [UIImage imageNamed:@"splash"];    
[self.window addSubview:splash];
hud = [[MBProgressHUD alloc]initWithView:splash];
[splash addSubview:hud];
hud.labelText = @"Loading...";
[hud show:YES];
[self performSelector:@selector(Load_FirstView) withObject:nil afterDelay:3];
[self.window makeKeyAndVisible];

方法Load_FirstView如下

-(void)Load_FirstView
{
    [splash removeFromSuperview];
    MasterViewController *masterViewController = [[MasterViewController alloc] initWithNibName:@"MasterViewController" bundle:nil];
    self.navigationController = [[UINavigationController alloc] initWithRootViewController:masterViewController];
    self.navigationController.navigationBar.tintColor = [UIColor blackColor];
    masterViewController.managedObjectContext = self.managedObjectContext;
    self.window.rootViewController = self.navigationController;
    [self.window makeKeyAndVisible];
}
于 2012-05-15T12:34:39.587 回答
0

如果您使用 Default.png 作为初始图像,则无法对其进行动画处理。一种方法是更快地启动应用程序,然后在加载数据期间显示动画视图。所以基本上你唯一的解决方案是远离 Default.png 并使用自定义视图来代替可以动画的。

于 2012-05-15T12:28:25.627 回答
0

从使用 Default.png 开始,然后加载一个UIView包含与(整个屏幕)UIImageView相同框架的单个文件。UIView将 Default.png 设置为UIImageImageView 并根据需要添加任何控件(例如UIActivityIndicatorView)。

于 2012-05-15T12:30:13.240 回答