首页 文章

UINavigationBar圆了两个角落

提问于
浏览
12

我想围绕UINavigationBar的右上角和左上角 .

我知道有更改视角半径的功能,但是可以做一些类似于标准UINavigationBar的操作吗?

如果你不想谈论,请看看:

谢谢!

3 回答

  • 10

    最好的方法是覆盖UINavigationBar中的drawRect并使用自定义图像 .

  • 0

    以下代码适用于我(在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;
    
  • 44

    您可能会觉得这很有帮助 . 也许你也可以用CoreAnim / Image进行某种掩饰?我不太了解Core *系列......

    http://foobarpig.com/iphone/uinavigationbar-with-solid-color-or-image-background.html

相关问题