Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/102.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 无法将暗淡背景设置为模式视图_Ios_Uiview_Background_Modal Dialog_Opacity - Fatal编程技术网

Ios 无法将暗淡背景设置为模式视图

Ios 无法将暗淡背景设置为模式视图,ios,uiview,background,modal-dialog,opacity,Ios,Uiview,Background,Modal Dialog,Opacity,我正在开发一款应用程序,目标是iOS7及以上版本。我想展示一个带有暗淡背景的视图,部分显示前面的视图。我读过几篇关于这种情况的帖子,我确实读过: 在情节提要中创建了视图控制器场景,并设置模式序列以导航到该场景 将该模态序列的表示值设置为当前上下文 将视图控制器的视图背景颜色设置为“清除颜色” 在父视图上方添加了一个全屏视图,背景为黑色,不透明度为50% 默认情况下,过渡到模态视图并设置动画。在动画中,我看到视图显示为半透明,但一旦过渡动画结束,视图最终占据整个屏幕,视图将变为不透明黑色 我做错了

我正在开发一款应用程序,目标是iOS
7及以上版本。我想展示一个带有暗淡背景的视图,部分显示前面的视图。我读过几篇关于这种情况的帖子,我确实读过:

  • 在<代码>情节提要
  • 中创建了视图控制器场景,并设置模式序列以导航到该场景
  • 将该模态序列的
    表示
    值设置为
    当前上下文
  • 将视图控制器的视图背景颜色设置为“清除颜色”
  • 在父视图上方添加了一个全屏视图,背景为黑色,不透明度为50%
  • 默认情况下,过渡到模态视图并设置动画。在动画中,我看到视图显示为半透明,但一旦过渡动画结束,视图最终占据整个屏幕,视图将变为不透明黑色


    我做错了什么?我该如何解决这个问题呢?

    正如@luk2302所说,当您以模式呈现视图控制器时,iOS会将其下方的视图控制器从视图层次结构中移除,因此除了黑色的应用程序窗口之外,它下面什么都没有。无论如何,iOS 7有一个新的模式表示样式UIModalPresentationCustom,它强制iOS不删除显示视图控制器下的视图。但是,您必须提供自己的过渡代理来处理演示文稿和动画
    检查如何实现自定义转换委托。

    请注意最后一条语句:它可能不会变得不透明,但后面的视图不再渲染,前面的视图仍然透明,但是在它后面已经没有任何东西可以显示了。如果我想展示的模态视图的目的仅仅是向用户显示一条消息并被拒绝,那么实际上是否应该创建一个视图并将其添加到当前视图之上呢?不,视图控制器仍然存在,这就是为什么我认为只需将我想要的子视图添加到当前视图和视图控制器中,而不显示具有自己视图控制器的模型视图。。。应该有用吧?我只想显示一种带有暗淡背景和自定义关闭按钮的警报…这是最简单的解决方案。但不是那么优雅。只需使用
    将subviewTofront:
    方法将暗淡的背景置于一切之上。如果需要,可以使用
    sendSubviewToBack:
    方法将其发送回层次结构的底部。