如何更改弹出窗口背景颜色

时间:2011-05-26 10:23:57

标签: ipad

我的问题是:

我有一个popOver,当它弹出时,我希望其他视图的颜色变为灰色。

点击popover外部后,popover将会解散,其他视图的颜色将恢复正常。

任何人都可以帮助我吗?非常感谢。

3 个答案:

答案 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。我这样说是因为你所描述的行为是模态视图的经典之作。