【问题标题】:UIPopoverPresentationController dimming background darkerUIPopoverPresentationController 调暗背景变暗
【发布时间】:2015-07-24 05:47:23
【问题描述】:

我想要UIPopover 的背景颜色较暗。我知道这可以通过子类化UIPopoverBackgroundView 来实现,正如here 所提到的,但我正在寻找任何更简单的方法来做到这一点。

附: 我使用的是 Objective C 而不是 Swift

【问题讨论】:

    标签: objective-c xcode ios8 uipopovercontroller


    【解决方案1】:

    斯威夫特 4

    我刚刚遇到同样的问题,并找到了类似于 jimmyjudas 的解决方案。

    在viewController中显示为popover:

        override func viewWillAppear(_ animated: Bool) {
            super.viewWillAppear(animated)
            self.presentingViewController?.view.alpha = 0.3
        }
    
        override func viewWillDisappear(_ animated: Bool) {
            super.viewWillDisappear(animated)
            self.presentingViewController?.view.alpha = 1
        }
    

    【讨论】:

    • 非常酷和简单的答案。我喜欢。使用视图动画会更好: UIView.animate(withDuration: 0.5, animations: { self.presentingViewController?.view.alpha = 0.5 })
    【解决方案2】:

    最简单的方法是在显示弹出框之前调用self.view.alpha = 0.2,并在弹出框关闭时将其设置回 1.0。

    【讨论】:

    • 只是为了向这个答案添加更多的指针,我覆盖了 UIViewController 中的 ViewWillAppear 和 ViewWillDisappear 被显示为弹出框以在主视图控制器的视图上设置 alpha。 (在 Xamarin 中,我使用了 UIApplication.SharedApplication.KeyWindow.RootViewController.View.Alpha = 0.5f 并在此过程中检查了一些空值。)
    【解决方案3】:

    由于用户要求 Obj C 解决方案 - 在弹出窗口中显示的 VC 中使用

    - (void)viewWillAppear:(BOOL)animated {
        [super viewWillAppear:animated];
        self.popoverPresentationController.containerView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.4];
    }
    

    【讨论】:

      【解决方案4】:

      UIPopover 没有背景属性,因为它是 NSObject 的子类 没有自定义视图属性 所以你可以改变它的内容颜色 -

       UIPopoverController *popC = [[UIPopoverController alloc] initWithContentViewController:TestingPC];
      [[[popC contentViewController]  view] setBackgroundColor:[UIColor blackcolor]];
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-11-10
        • 1970-01-01
        • 2021-09-15
        • 2017-03-07
        • 2019-06-11
        相关资源
        最近更新 更多