我有一个小于superview的UIView,所以当单击一个按钮时,我可以将此视图表示为模态视图。
我设法做了以下事情: *在superview中添加子视图。 *以模态视图为中心
我现在正试图让UIView背后的元素无法点击。并且还在我的模态视图中添加灰色阴影,以便用户理解模态视图是焦点视图。
我想知道如何实现这一点。
我不希望使用演示模式转换。我知道并且已经在其他项目中实现了这一点。 任何帮助表示赞赏。
答案 0 :(得分:10)
最简单的方法是在“模态”视图后面放置一个半透明灰色背景的全屏UIView
。然后它将拦截所有的触摸。它可能看起来像这样:
UIView *dimBackgroundView = [[UIView alloc] initWithFrame:theSuperview.bounds];
dimBackgroundView.backgroundColor = [[UIColor grayColor] colorWithAlphaComponent:.5f];
[theSuperview addSubview:dimBackgroundView];
[theSuperview addSubview:modalView];
为了将来参考,您可以设置myView.userInteractionEnabled = NO
以禁用视图上的触摸事件。
答案 1 :(得分:0)
有几种方法可以做到这一点。 如果您有一个具有自定义位置的自定义视图,您可以像这样修改它:
创建实例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];