作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在通过子类化 UIPopoverBackgroundView(使用此 tutorial)并使用 UIPopoverController 呈现它来制作自定义弹出窗口。不幸的是,一旦我指定自定义 popoverBackgroundViewClass, native 变暗的背景就会消失。使用自定义 UIPopoverBackgroundView 时,有什么方法可以让背景变暗吗?我可以用来模拟 native 行为的任何其他解决方案吗?
最佳答案
不确定为什么这会被否决,这是一个很好的问题,因为当您实现自定义 UIPopoverBackgroundView 时,不会设置变暗的背景。在研究这个问题时,我确定最好的方法是自己设置!
就在创建弹出 View 之前,我创建了一个“掩码 View ”,它将添加到弹出 View 之前的 View 中。此代码还包括一个很好的淡入淡出效果:
self.customPopoverMaskView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.view.bounds.size.width, self.view.bounds.size.height)];
self.customPopoverMaskView.backgroundColor = [UIColor blackColor];
self.customPopoverMaskView.alpha = 0.3f;
[UIView transitionWithView:self.view
duration:0.3
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^ {
[self.view addSubview:self.customPopoverMaskView];
}
completion:nil];
要删除 View ,请将其插入处理弹出 View 消失的方法:
[UIView transitionWithView:self.view
duration:0.3
options:UIViewAnimationOptionTransitionCrossDissolve
animations:^ {
[self.customPopoverMaskView removeFromSuperview];
}
completion:nil];
对我来说效果很好。编码愉快!
亚伦
关于objective-c - 如何将变暗的背景添加到自定义 UIPopoverBackgroundView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21167466/
我是一名优秀的程序员,十分优秀!