第二个 UINavigationBar 的颜色不同
Color shade is different on second UINavigationBar
我在 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 中将两个 UINavigationBar 放在彼此的顶部,因此 UINavigationBar 位于状态栏下方。状态栏下方的导航栏位于主导航栏下方。
第二个导航栏的颜色与主导航栏不同。
这是它的样子:
(第二个导航栏是颜色比标题栏 "Community" 颜色浅的导航栏)
问题:如何修复它使两个 UINavigationBar 具有相同的十六进制颜色 (#125687)?
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];
不要使用两个导航栏。
您可以简单地扩展您的导航栏。
您可以将 UIViewController
嵌入 UINavigationController
或者
要将单个导航栏扩展到状态栏下方,您可以使用以下方法
- (UIBarPosition)positionForBar:(id<UIBarPositioning>)bar {
return UIBarPositionTopAttached;
}
参考this answer
我在 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 中将两个 UINavigationBar 放在彼此的顶部,因此 UINavigationBar 位于状态栏下方。状态栏下方的导航栏位于主导航栏下方。 第二个导航栏的颜色与主导航栏不同。
这是它的样子:
(第二个导航栏是颜色比标题栏 "Community" 颜色浅的导航栏)
问题:如何修复它使两个 UINavigationBar 具有相同的十六进制颜色 (#125687)?
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];
不要使用两个导航栏。
您可以简单地扩展您的导航栏。
您可以将 UIViewController
嵌入 UINavigationController
或者
要将单个导航栏扩展到状态栏下方,您可以使用以下方法
- (UIBarPosition)positionForBar:(id<UIBarPositioning>)bar {
return UIBarPositionTopAttached;
}
参考this answer