gpt4 book ai didi

iphone - UINavigationbar 的阴影效果,如 GameCenter

转载 作者:行者123 更新时间:2023-12-03 18:44:01 26 4
gpt4 key购买 nike

我想为 UINavigationbar 添加阴影效果,就像 GameCenter 一样。

我认为将带有阴影的背景图像应用于导航栏,但标题的行高会降低。我将阴影绘制到背景,但背景图像不会滚动。

这个案例的最佳实践是什么?

最佳答案

您可以子类化 UINavigationController,然后为每个导航设置一个阴影层,或者如果您的栏始终可见,只需将阴影添加到 UIWindow(整个应用程序只有一个),然后每次添加 subview 时将其设为最前面的 View .

CGColorRef darkColor = [[UIColor blackColor] colorWithAlphaComponent:.5f].CGColor;
CGColorRef lightColor = [UIColor clearColor].CGColor;

CAGradientLayer *newShadow = [[[CAGradientLayer alloc] init] autorelease];
newShadow.frame = CGRectMake(0, self.navigationBar.frame.size.height, self.navigationBar.frame.size.width, 10);
newShadow.colors = [NSArray arrayWithObjects:(id)darkColor, (id)lightColor, nil];

[self.navigationBar.layer addSublayer:newShadow];

如果您选择后一种情况,则覆盖 didAddSubview 以使图层位于最前面:

CALayer *superlayer = self.shadowLayer.superlayer;
[self.shadowLayer removeFromSuperlayer];
[superlayer addSublayer:self.shadowLayer];

希望有帮助。

关于iphone - UINavigationbar 的阴影效果,如 GameCenter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4321457/

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