在iOS7半透明导航栏中获取正确的颜色

如何在iOS 7中为我的半透明导航栏获得正确的颜色?导航栏只是调整给定的颜色更明亮一个。改变颜色的亮度或饱和度也不会产生正确的结果。

任何人有同样的麻烦吗?它似乎工作不知何故,看着Facebook:他们有他们的颜色和半透明的导航栏。

编辑:只是为了清楚:我需要的酒吧是半透明的,不透明的(有一些阿尔法),不坚实! http://en.wikipedia.org/wiki/Transparency_and_translucency

编辑:现在发布到苹果BugReporter

该条将调整您的颜色值。

优选的方法,仅对于RGB> = 40,将给出最模糊

你可以使用这个计算器,并在屏幕上呈现你想要的颜色,它会告诉你什么设置barTintColor的颜色,所以当苹果调整它,它会显示为预期

http://b2cloud.com.au/how-to-guides/bar-color-calculator-for-ios7-and-ios8/

编辑:请注意,这些计算是为白色背景,而对于较浅的颜色(rgb超过40,如果你需要更暗,你将需要添加一个像其他人提到的背景层 – 虽然这将减少酒吧的模糊)

替代黑暗的底层视图,例如Facebook的深蓝色:(65,96,156)
http://img707.imageshack.us/img707/3151/482w.png

深度指南:http://b2cloud.com.au/how-to-guides/custom-uinavigationbar-colors-in-ios7

代码段:

@interface UnderlayNavigationBar : UINavigationBar

@end

@interface UnderlayNavigationBar ()
{
    UIView* _underlayView;
}

- (UIView*) underlayView;

@end

@implementation UnderlayNavigationBar

- (void) didAddSubview:(UIView *)subview
{
    [super didAddSubview:subview];

    if(subview != _underlayView)
    {
        UIView* underlayView = self.underlayView;
        [underlayView removeFromSuperview];
        [self insertSubview:underlayView atIndex:1];
    }
}

- (UIView*) underlayView
{
    if(_underlayView == nil)
    {
        const CGFloat statusBarHeight = 20;    //  Make this dynamic in your own code...
        const CGSize selfSize = self.frame.size;

        _underlayView = [[UIView alloc] initWithFrame:CGRectMake(0, -statusBarHeight, selfSize.width, selfSize.height + statusBarHeight)];
        [_underlayView setAutoresizingMask:(UIViewAutoresizingFlexibleWidth | UIViewAutoresizingFlexibleHeight)];
        [_underlayView setBackgroundColor:[UIColor colorWithRed:0.0f green:0.34f blue:0.62f alpha:1.0f]];
        [_underlayView setAlpha:0.36f];
        [_underlayView setUserInteractionEnabled:NO];
    }

    return _underlayView;
}

@end

UIViewController* rootViewController = ...;
UINavigationController* navigationController = [[UINavigationController alloc] initWithNavigationBarClass:[UnderlayNavigationBar class] toolbarClass:nil];
[navigationController.navigationBar setBarTintColor:[UIColor colorWithRed:0.0f green:0.0f blue:90.0f/255.0f alpha:1]];
[navigationController setViewControllers:@[rootViewController]];
http://stackoverflow.com/questions/18895252/get-the-right-color-in-ios7-translucent-navigation-bar

本站文章除注明转载外,均为本站原创或编译
转载请明显位置注明出处:在iOS7半透明导航栏中获取正确的颜色