我的问题是:
我有一个popOver,当它弹出时,我希望其他视图的颜色变为灰色。
点击popover外部后,popover将会解散,其他视图的颜色将恢复正常。
任何人都可以帮助我吗?非常感谢。
答案 0 :(得分:1)
好的,我找到了解决方案。 我使用了UIPopoverControllerDelegate
里面有一个名为的方法:
- (void)popoverControllerDidDismissPopover:(UIPopoverController *)popoverController
每次弹出窗口时,都会在背景顶部添加UIImageView。通过设置其alpha值,背景可能不明确。
每次用户点击外部时弹出消息时,我将调用上面提到的方法,在该方法中只删除我们刚刚添加的UIImageView。它完成了!
答案 1 :(得分:0)
您需要循环所有子视图,识别不透明视图并执行您想要的操作!
for (UIView *v in [self.view allSubViews])
{
NSLog(@"%@", [v description] );
// examples
if (v.opacity <= 1) { }
if([v isKindOfClass:[UIView class]]) { }
// etc
}
希望这会有所帮助。
答案 2 :(得分:0)
作为一个建议,你可以问自己,你的需求是否更好地呈现一个视图 modally 而不是一个popover。我这样说是因为你所描述的行为是模态视图的经典之作。