问题描述
|
我的问题是:
我有一个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
}
希望这可以帮助。
,就像一个建议一样,您可以问自己是否最好以模态方式显示视图而不是弹出窗口。我说这是因为您要描述的行为是模式视图的经典。