iOS显示视图时的暗淡背景

Sri*_*aju 20 animation objective-c uiview ios

在我的主视图中,我做了一些手势操作,导致显示一些新视图.这时我想将整个背景(除了这个新视图)调暗为一个很好的UI练习.在HTML中,Javascript看起来如此 - 我如何在iOS中获得相同的效果?

在此输入图像描述

Dan*_*Ray 33

在背景上放置一个UIView,将其背景[UIColor blackColor]设置为并将其不透明度设置为0.6.然后将该UIView添加到父视图.

这将使背景变暗并拦截任何背景控件的水龙头.


Mis*_*Moo 5

虽然Dan的建议是目标,但在这种情况下你不能使用模态视图控制器,因为一个典型的模态覆盖整个屏幕,阻止父视图控制器,即使你的视图背景是透明的(你会看到任何你在应用程序的UIWindow中).

如果你在iPad上这样做,有2种模式演示风格(UIViewModalPresentationStylePageSheetUIViewModalPresentationStyleFormSheet)可以做类似的事情,但那些不适用于iPhone或iPod Touch.

将具有深色背景和部分不透明度以及您想要在前景中的任何视图的"阴影"视图直接添加到视图控制器的视图中.您可以使用标准UIView动画块或CoreAnimation为它们设置动画.

另外需要注意的是,如果你想拦截那个阴影视图的触摸,你可以使它成为一个巨大的按钮,子类UIView覆盖其中一个触摸方法,touchesEnded:或者将它改为UIControl,它可以接收像UIButton这样的触摸事件,但没有文本,阴影,状态等的额外选项

  • 你说我在答案中说"模态"是对的.我并不是指以任何正式方式"以模态方式呈现"的观点.基本上,你正在构建自己的模态视图. (3认同)