我有一个应用程序,当它开始时,它会加载一个 viewController,它会加载 Default.png 启动图像并将其保持 1.5 秒,然后该图像淡出,然后淡入另一个图像,该图像将成为我整个应用程序的背景图像. 从这里它加载第一个 viewController,然后按钮和导航栏淡入。
所以它去了 SplashScreeVC - Default.png 呈现 Default.png 淡出 新图像淡入(这是应用程序的整体背景图像) 加载 MainVC,按钮和导航栏 alpha 设置为 0.1。调用方法淡入导航栏和 mainVC 中的按钮
所以在我的应用程序代表中我有这个
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
SplashVC *splash = [[SplashVC alloc] initWithNibName:@"SplashView" bundle:nil];
self.window.rootViewController = splash;
[self.window makeKeyAndVisible];
return YES;
}
所以应用程序加载了 Default.png,然后加载了具有 Default.png 作为其背景图像的 splashVC,这显示了 1.5 秒。然后我有一些方法可以淡出这个图像,然后淡入将用作整个应用程序的背景图像的图像。然后它调用加载导航控制器的 appDelegates MainNav 方法。App Delegates MainNav 方法如下
-(void) MainNav
{
UIViewController *main = [[MainVC alloc] initWithNibName:@"MainView" bundle:nil];
self.navController = [[UINavigationController alloc] initWithRootViewController:main];
UIImage *navImage = [UIImage imageNamed:@"NavBarGrey.png"];
//Add the custom image
[[self.navController navigationBar] setBackgroundImage:navImage forBarMetrics:UIBarMetricsDefault];
//[[UINavigationBar appearance] setTintColor:UIColorFromRGB(0xee2e24)];
[[UINavigationBar appearance] setTintColor:UIColorFromRGB(0xe7e7e7)];
self.navController.view.backgroundColor = [[UIColor alloc] initWithPatternImage:[UIImage imageNamed:@"backgroundImage.png"]];
self.window.rootViewController = self.navController;
}
问题是当它从 SplashScreen VC 移动到 MainVC 时,图像会突然猛烈起来,尽管事实上它与在 SplashVC 中淡入的图像相同。
有谁知道这是为什么?我猜它与影响图像大小的导航控制器有关,但不确定如何修复它?我是否需要为不同尺寸的导航栏背景创建新图像?还是有其他方法可以解决此问题?
任何建议将不胜感激。谢谢!!
编辑:固定图像向右抖动,图像宽度在错误高度,但图像仍在跳跃一定量