【问题标题】:How to add shadow to UINavigationController如何向 UINavigationController 添加阴影
【发布时间】:2013-02-09 04:25:02
【问题描述】:

我想在 Path 或 Facebook 中创建一个幻灯片菜单,在我的菜单和 UINavigationController 之间有一个阴影,其中包含所有内容。我可以为图层添加圆角,但我应用到图层的阴影未显示。该代码有什么问题?如果我使用 UIViewController 而不是 UINavigationController,它就可以工作...(代码位于作为 rootViewController 添加到 UINavigationController 的视图中)

问题是我不想松开 UINavigationController 的圆角边框

self.navigationController.view.layer.shadowPath = [UIBezierPath bezierPathWithRoundedRect:self.navigationController.view.bounds cornerRadius:self.navigationController.view.layer.cornerRadius].CGPath;
[self.navigationController.view.layer setMasksToBounds:YES];
[self.navigationController.view.layer setShadowColor:[UIColor blackColor].CGColor];
[self.navigationController.view.layer setShadowOffset:CGSizeMake(0, 0)];
[self.navigationController.view.layer setShadowOpacity:0.5];
[self.navigationController.view.layer setShadowRadius:3];
[self.navigationController.view.layer setCornerRadius:3];

【问题讨论】:

    标签: iphone objective-c ios6 uinavigationcontroller shadow


    【解决方案1】:

    问题是

    [self.navigationController.view.layer setMasksToBounds:YES];
    

    顾名思义,图层之外的所有东西——包括阴影——都被遮住了。

    【讨论】:

    • 好的,但是我把圆角弄松了?
    • 为什么不添加一个具有圆角的“容器”视图并将 backgroundColor 设置为 [UIColor clearColor] ?
    【解决方案2】:

    在 Swift3 中

    self.navigationController?.view.layer.shadowOffset = CGSize(width: 0, height: 5)
    self.navigationController?.view.layer.masksToBounds = true
    

    【讨论】:

      【解决方案3】:

      setMasksToBounds 设置为NO .like this

      [self.navigationController.view.layer setMasksToBounds:NO];
      

      你可以在不丢失角落的情况下添加阴影,用你的代码试试这个

      [self.navigationController.view setShouldRasterize:YES];
      

      设置一些 shadowOffset 并尝试

      setShadowOffset:CGSizeMake(0, 5)
      

      【讨论】:

      • 是否可以在不丢失圆角的情况下做到这一点?
      • 我已经尝试过了,但我只能在图层上应用 setShouldRasterize 但它不起作用,而且像素化视图非常强烈
      【解决方案4】:
      navigationController?.navigationBar.shadowImage = UIImage(named: "shadow")
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-19
        • 2015-11-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多