Iphone 禁用模态UIView后面的UIView上的元素

Iphone 禁用模态UIView后面的UIView上的元素,iphone,objective-c,background,modal-view,Iphone,Objective C,Background,Modal View,我有一个比superview小的UIView,因此我可以在单击按钮时将此视图表示为模式视图 我已设法做到以下几点: *将子视图添加到超级视图。 *将此模式视图居中 我现在正试图使UIView背后的元素不可读取。还可以在模态视图的右侧添加灰色阴影,以便用户了解模态视图是焦点视图 我想知道如何做到这一点 我不希望使用演示模式转换。我知道并且已经在其他项目中实施了这一点。 非常感谢您的帮助。最简单的方法是在“模式”视图后面放置一个带有半透明灰色背景的全屏UIView。然后它将拦截所有的触摸。它可能看起

我有一个比superview小的UIView,因此我可以在单击按钮时将此视图表示为模式视图

我已设法做到以下几点: *将子视图添加到超级视图。 *将此模式视图居中

我现在正试图使UIView背后的元素不可读取。还可以在模态视图的右侧添加灰色阴影,以便用户了解模态视图是焦点视图

我想知道如何做到这一点

我不希望使用演示模式转换。我知道并且已经在其他项目中实施了这一点。
非常感谢您的帮助。

最简单的方法是在“模式”视图后面放置一个带有半透明灰色背景的全屏
UIView
。然后它将拦截所有的触摸。它可能看起来像这样:

UIView *dimBackgroundView = [[UIView alloc] initWithFrame:theSuperview.bounds];
dimBackgroundView.backgroundColor = [[UIColor grayColor] colorWithAlphaComponent:.5f];

[theSuperview addSubview:dimBackgroundView];
[theSuperview addSubview:modalView];

为了便于将来参考,您可以设置myView.userInteractionEnabled=NO来禁用视图上的触摸事件。

有几种方法。 如果您有一个具有自定义位置的自定义视图,则可以对其进行如下修改:

创建一个实例
var

UIView* backgroundView;
无论何时需要,都可以将其放在自定义视图的后面:

if (backgroundView == nil)
        backgroundView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, [UIScreen mainScreen].bounds.size.height, [UIScreen mainScreen].bounds.size.width)];
backgroundView.backgroundColor = [[UIColor grayColor] colorWithAlphaComponent:.5f];
[self.view addSubview:backgroundView];
[backgroundView animateBump:customView.view];
[backgroundView addSubview:customView.view];
当你不再需要它的时候

   [backgroundView removeFromSuperview];