相关疑难解决方法(0)

自定义UITabBar背景图像在iOS 5及更高版本中无效

我有一段简单的代码,可以在tabBar上放置背景图像.

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tabBG.png"]];
[self.tabBarController.tabBar insertSubview:imageView atIndex:0];
[imageView release];
Run Code Online (Sandbox Code Playgroud)

这在iOS 4中运行良好,但在iOS 5中测试时,它不起作用.

我正在尝试执行以下操作:

UIImageView *imageView = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"tabBG.png"]];

NSString *reqSysVer = @"4.3";
NSString *iOSVersion = [[UIDevice currentDevice] systemVersion];

if ([iOSVersion compare:reqSysVer options:NSNumericSearch] !=NSOrderedDescending) {
    // code for iOS 4.3 or below
    [self.tabBarController.tabBar insertSubView:imageView atIndex:0];
}
else {
    // code for iOS 5
    [self.tabBarController.tabBar insertSubView:imageView atIndex:1];
}

[imageView release];
Run Code Online (Sandbox Code Playgroud)

唉,这不行......有人能提供解决方案吗?

iphone cocoa-touch objective-c ipad ios

13
推荐指数
2
解决办法
2万
查看次数

UINavigationBar和新的iOS 5+外观API - 如何提供两个背景图像?

我想利用新的iOS 5外观API为我的应用程序中的所有UINavigationBar实例提供自定义背景图像.要做到这一点,它就像这样简单:

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"whatever.png"] forBarMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)

但是,对于每个实例,我想根据translucent属性的值提供不同的图像,例如

// For UINavigationBar instances where translucent returns YES:
[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"whatever-translucent.png"] forBarMetrics:UIBarMetricsDefault];

// Otherwise:

[[UINavigationBar appearance] setBackgroundImage:[UIImage imageNamed:@"whatever.png"] forBarMetrics:UIBarMetricsDefault];
Run Code Online (Sandbox Code Playgroud)

鉴于外观API似乎是使用类方法配置的,这样的事情可能吗?

appearance objective-c uinavigationbar ios ios5

8
推荐指数
1
解决办法
1万
查看次数