UIPopoverPresentationController 调暗背景更暗
UIPopoverPresentationController dimming background darker
我想要 UIPopover
的深色背景。我知道这可以通过 here 提到的 UIPopoverBackgroundView
子类化来实现,但我正在寻找任何更简单的方法来做到这一点。
P.S。 我正在使用 Objective C 而不是 Swift。
最简单的方法是在显示弹出窗口之前简单地调用 self.view.alpha = 0.2
,并在弹出窗口关闭时将其设置回 1.0。
UIPopover 没有后台 属性 因为它是 NSObject 的子类
没有自定义视图 属性
所以你可以改变它的内容颜色 -
UIPopoverController *popC = [[UIPopoverController alloc] initWithContentViewController:TestingPC];
[[[popC contentViewController] view] setBackgroundColor:[UIColor blackcolor]];
Swift 4
我刚遇到同样的问题并找到了类似于 jimmyjudas 的解决方案。
在 viewController 中显示为弹出窗口:
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
}
由于用户要求的是 Obj C 解决方案 - 在弹出框
中显示的 VC 中使用
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.popoverPresentationController.containerView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.4];
}
我想要 UIPopover
的深色背景。我知道这可以通过 here 提到的 UIPopoverBackgroundView
子类化来实现,但我正在寻找任何更简单的方法来做到这一点。
P.S。 我正在使用 Objective C 而不是 Swift。
最简单的方法是在显示弹出窗口之前简单地调用 self.view.alpha = 0.2
,并在弹出窗口关闭时将其设置回 1.0。
UIPopover 没有后台 属性 因为它是 NSObject 的子类 没有自定义视图 属性 所以你可以改变它的内容颜色 -
UIPopoverController *popC = [[UIPopoverController alloc] initWithContentViewController:TestingPC];
[[[popC contentViewController] view] setBackgroundColor:[UIColor blackcolor]];
Swift 4
我刚遇到同样的问题并找到了类似于 jimmyjudas 的解决方案。
在 viewController 中显示为弹出窗口:
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
}
由于用户要求的是 Obj C 解决方案 - 在弹出框
中显示的 VC 中使用- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
self.popoverPresentationController.containerView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:0.4];
}