Shu*_*112 6 iphone uinavigationbar uikit
我想为像GameCenter这样的UINavigationbar添加阴影效果.
我认为将带有阴影的背景图像应用于导航栏,但标题的行高会降低.我在背景中绘制阴影,但背景图像不会滚动.
这个案子最好的做法是什么?
您可以为UINavigationController创建子类,然后为每个导航创建一个阴影层,或者如果您的栏始终可见,只需将阴影添加到UIWindow(整个应用程序只有一个),然后在每次添加子视图时将其设置为最前面的视图.
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];
Run Code Online (Sandbox Code Playgroud)
如果选择后一种情况,则覆盖didAddSubview以使图层成为最前面的图层:
CALayer *superlayer = self.shadowLayer.superlayer;
[self.shadowLayer removeFromSuperlayer];
[superlayer addSublayer:self.shadowLayer];
Run Code Online (Sandbox Code Playgroud)
希望能帮助到你.
归档时间: |
|
查看次数: |
3852 次 |
最近记录: |