gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 07:32:16 25 4
gpt4 key购买 nike

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

有人遇到同样的问题吗?它似乎以某种方式起作用,看看 Facebook:他们有自己的颜色和半透明的导航栏。

编辑:为了清楚起见:我需要 Bar 是半透明的,而不是透明的(带有一些 alpha),而不是实心的! http://en.wikipedia.org/wiki/Transparency_and_translucency

编辑:现在发布到 Apple BugReporter

最佳答案

该栏将调整您的颜色值。

首选方法,仅适用于 RGB >= 40,会产生最模糊的效果

您可以使用这个计算器并输入您想要在屏幕上呈现的颜色,它会告诉您如何设置 barTintColor 的颜色,因此当 Apple 调整它时,它会按预期显示

https://www.transpire.com/insights/blog/bar-color-calculator/

编辑:请注意,这些计算是针对白色背景和较浅的颜色(rgb 超过 40,如果您需要更暗的颜色,则需要像其他人提到的那样添加背景层 - 尽管这会减少条形的模糊度)

深度指南:https://www.transpire.com/insights/blog/custom-ui-navigationbar-colors-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]];

关于ios - 在 iOS7 半透明导航栏中获取正确的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18895252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com