我想在应用程序加载数据时在启动屏幕上显示 GIF 图像。
我的初始图像显示至少大约 3 或 4 秒,这就是为什么我想在初始图像上显示加载文本(如 gif 图像),以便用户认为应用程序正在加载。
我想在应用程序加载数据时在启动屏幕上显示 GIF 图像。
我的初始图像显示至少大约 3 或 4 秒,这就是为什么我想在初始图像上显示加载文本(如 gif 图像),以便用户认为应用程序正在加载。
只需在您的初始图像中添加一个标签,然后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];
}
如果您使用 Default.png 作为初始图像,则无法对其进行动画处理。一种方法是更快地启动应用程序,然后在加载数据期间显示动画视图。所以基本上你唯一的解决方案是远离 Default.png 并使用自定义视图来代替可以动画的。
从使用 Default.png 开始,然后加载一个UIView
包含与(整个屏幕)UIImageView
相同框架的单个文件。UIView
将 Default.png 设置为UIImage
ImageView 并根据需要添加任何控件(例如UIActivityIndicatorView
)。