如何更改弹出框背景色

问题描述

| 我的问题是: 我有一个popOver,当它弹出时,我希望其他视图的颜色变为灰色。 在弹出窗口外点击后,弹出窗口将消失,其他视图的颜色将恢复为正常。 有人可以帮助我吗?非常感谢。     

解决方法

好的,我找到了解决方案。 我用了UIPopoverControllerDelegate 里面有一个方法叫做:
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
每次显示弹出窗口时,都会在背景顶部添加一个UIImageView。并且通过设置其alpha值,背景可能不清晰。 每当用户在外部轻击弹出窗口时,都会调用我上面提到的方法,并且在该方法内部只需删除我们刚才添加的UIImageView。完成了!     ,您需要循环所有子视图,识别不透明视图,然后执行所需的操作!
for (UIView *v in [self.view allSubViews])
{
    NSLog(@\"%@\",[v description] );

    // examples
    if (v.opacity <= 1) { }
    if([v isKindOfClass:[UIView class]]) { }
    // etc
}
希望这可以帮助。     ,就像一个建议一样,您可以问自己是否最好以模态方式显示视图而不是弹出窗口。我说这是因为您要描述的行为是模式视图的经典。     

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...