我在AppDelegate.m中有一个代码,它将所有UINavigationBar十六进制颜色设置为#125687
来自AppDelegate.m的代码
#define UIColorFromRGB(rgbValue) [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16))/255.0 green:((float)((rgbValue & 0xFF00) >> 8))/255.0 blue:((float)(rgbValue & 0xFF))/255.0 alpha:1.0]
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
[[UINavigationBar appearance] setBarTintColor:UIColorFromRGB(0x125687)];
问题在于:我在viewcontroller中将两个UINavigationBars放在彼此的顶部,因此UINavigationBar位于状态栏下。状态栏下方的导航栏位于主导航栏下方。 第二个导航栏的颜色与主要颜色不同。
这是它的样子:
(第二个导航栏是导航栏,颜色较浅,标题为“社区”的栏)
问题:如何修复它以使UINavigationBars具有相同的十六进制颜色(#125687)?
答案 0 :(得分:1)
请勿使用两个导航栏。
您可以简单地扩展导航栏。
您可以将UIViewController
嵌入UINavigationController
或者
要将状态栏下方的单个导航栏扩展,您可以使用以下
- (UIBarPosition)positionForBar:(id<UIBarPositioning>)bar {
return UIBarPositionTopAttached;
}
答案 1 :(得分:-1)
UIStatusBar
的Conor会自动设置为与UINavigationBar
的颜色匹配:
self.navigationController.navigationBar.barTintColor
请尝试将其设置为所需的颜色。
修改强>
可以试试这个
而不是2个导航栏UIView *statusBarView = [[UIView alloc] initWithFrame:CGRectMake(0, -20, 320, 22)];
statusBarView.backgroundColor = [UIColor yellowColor]; // Replace this with your color
[self.navigationController.navigationBar addSubview:statusBarView];