我想围绕UINavigationBar的右上角和左上角。
我知道有改变视角半径的功能,但是可以做一些与标准UINavigationBar类似的事情吗?
如果你不知道我在说什么,请看看:
谢谢!
答案 0 :(得分:44)
以下代码适用于我(在iOS5上测试)。 以下代码围绕主导航栏的左上角/右上角。此外,它为它添加了一个阴影:
CALayer *capa = [self.navigationController navigationBar].layer;
[capa setShadowColor: [[UIColor blackColor] CGColor]];
[capa setShadowOpacity:0.85f];
[capa setShadowOffset: CGSizeMake(0.0f, 1.5f)];
[capa setShadowRadius:2.0f];
[capa setShouldRasterize:YES];
//Round
CGRect bounds = capa.bounds;
bounds.size.height += 10.0f; //I'm reserving enough room for the shadow
UIBezierPath *maskPath = [UIBezierPath bezierPathWithRoundedRect:bounds
byRoundingCorners:(UIRectCornerTopLeft | UIRectCornerTopRight)
cornerRadii:CGSizeMake(10.0, 10.0)];
CAShapeLayer *maskLayer = [CAShapeLayer layer];
maskLayer.frame = bounds;
maskLayer.path = maskPath.CGPath;
[capa addSublayer:maskLayer];
capa.mask = maskLayer;
答案 1 :(得分:10)
最好的方法是覆盖UINavigationBar中的drawRect并使用自定义图像。
答案 2 :(得分:0)
您可能会觉得这很有帮助。也许你也可以用CoreAnim / Image进行某种掩饰?我不太了解Core *系列......
http://foobarpig.com/iphone/uinavigationbar-with-solid-color-or-image-background.html