如何在显示子视图时禁用SuperView上的用户交互?

时间:2014-06-05 06:43:39

标签: iphone objective-c ios7 uiview xcode5.1

我创建了一个自定义UIView,将其作为子视图添加到ViewController并将其显示为PopUp。现在,我想要的是当显示UIView时,SuperView。

,即我的viewController应该禁用用户交互。

我试过下面的代码,但它禁用了包括PopUp在内的整个视图。所以如何禁用UserInteraction。

userInteractionEnabled = NO;

请给我一些想法。

谢谢。

1 个答案:

答案 0 :(得分:2)

您还可以将视图作为子视图添加到应用程序窗口并使用透明背景,例如:

CGSize popupSize = CGSizeMake(200, 200);
UIWindow *win = [[[UIApplication sharedApplication] delegate] window];
CGRect rect = CGRectMake(win.bounds.size.width/2-popupSize.width/2, win.bounds.size.height/2-popupSize.height/2, popupSize.width, popupSize.height);
UIView *myCustomView = [[MyCustomView alloc] initWithFrame:rect];
[win addSubView:myCustomView];
self.view.userInteractionEnabled = NO;

我没有测试过这段代码,但之前我已经在窗口中添加了东西。要删除视图,只需写:

[myCustomView removeFromSuperView];