gpt4 book ai didi

ios - self.navigationController.navigationBar.translucent = NO;在 navigationBar 之后创建一个额外的间隙

转载 作者:行者123 更新时间:2023-11-29 02:15:28 26 4
gpt4 key购买 nike

先说说我的情况。我在我的 appDelegate 中设置了 UINavigationBar 颜色,例如:

[[UINavigationBar appearance] setBarTintColor:[UIColor colorWithRed:255.0f/255.0f green:87.0f/255.0f blue:10.0f/255.0f alpha:1]];

现在在我的一些 viewController 中,UINavigationBartranslucent 设置为 YES

self.navigationController.navigationBar.translucent = YES;

这就是为什么我的 UINavigationBar 上有阴影。它没有显示确切的颜色。作为解决方案,我将 translucentYES 设置为 NO。它现在显示的是准确的颜色,但我面临的是我的某些 View 完全从我的界面中消失了。在这里,让我告诉你一件事,这里的许多 View 都是通过编程方式定位的,所以恐怕我不能将我的每个 viewController View 都移动到 64 像素高。只是想知道是否有任何解决方案来解决这个问题。我尝试使用 opaque,但没有成功。如果有人了解我的问题,请分享解决方案(如果有)。非常感谢。

最佳答案

从 iOS7 开始,如果您使用半透明栏(在 UINavigationControllerUITabbarController 中),则托管 View Controller 具有在其下扩展的默认行为。如果您说将条形图设置为半透明,它的颜色将是它下方的 View 和 bat 颜色的组合。这是正常的,唯一的方法是将半透明设置为无或将背景图像应用于导航栏。
手动应用框架在自动布局下会导致意想不到的结果,必须使用约束。

[更新]

要从纯色创建背景图像,您可以使用该方法,图像为 1px 正方形,但没有问题,因为它可以拉伸(stretch)或平铺以覆盖整个区域:

+ (UIImage *) imageWithColor:(UIColor*) color {
CGRect rect = CGRectMake(0, 0, 1, 1);
UIGraphicsBeginImageContext(rect.size);
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSetFillColorWithColor(context, color.CGColor);
CGContextFillRect(context, rect);
UIImage *colorImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return colorImage;
}

如果您看到额外的间隙可能是因为您还将 automaticallyAdjustScrollViewInset 设置为 YES,请尝试将其设置为 NO。如果此属性继承自 UIScrollView

,则此属性会添加并额外插入到您的 View 或 vfirst View subview 中

关于ios - self.navigationController.navigationBar.translucent = NO;在 navigationBar 之后创建一个额外的间隙,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28804612/

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