我希望为 UIPopover
实现更暗的背景色。我知道可以通过子类化 UIPopoverBackgroundView
来实现,如此处所述 here,但我正在寻找更简单的方法。
附注:我正在使用 Objective C 而非 Swift。
我希望为 UIPopover
实现更暗的背景色。我知道可以通过子类化 UIPopoverBackgroundView
来实现,如此处所述 here,但我正在寻找更简单的方法。
附注:我正在使用 Objective C 而非 Swift。
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];
}
self.view.alpha = 0.2
,并在弹出视图关闭后将其设置回 1.0。UIApplication.SharedApplication.KeyWindow.RootViewController.View.Alpha = 0.5f
,并在此过程中进行了一些空值检查。) - jimmyjudasUIPopover没有背景属性,因为它是NSObject的子类 没有自定义视图属性 所以你无法改变它的内容颜色 -
UIPopoverController *popC = [[UIPopoverController alloc] initWithContentViewController:TestingPC];
[[[popC contentViewController] view] setBackgroundColor:[UIColor blackcolor]];