swift – iOS 8:将具有模糊效果的UIVisualEffectView应用于紧凑模式下的模态PopOver

swift – iOS 8:将具有模糊效果的UIVisualEffectView应用于紧凑模式下的模态PopOver,第1张

概述我试图像2014年的WWDC会议214那样制作一个popover. 所以我开始使用具有两个视图的IB构建我的应用程序,这两个视图通过“Present As Popover”segue连接,如下: d出视图包含一个填充其超级视图的文本视图,具有以下约束: 为了支持模态popover,可以使用以下代码: func adaptivePresentationStyleForPresentationCont 我试图像2014年的WWDC会议214那样制作一个popover.

所以我开始使用具有两个视图的IB构建我的应用程序,这两个视图通过“Present As Popover”segue连接,如下:

d出视图包含一个填充其超级视图的文本视图,具有以下约束:

为了支持模态popover,可以使用以下代码:

func adaptivePresentationStyleForPresentationController(controller: UIPresentationController) -> UIModalPresentationStyle {    return .OverFullScreen}func presentationController(controller: UIPresentationController,vIEwControllerForAdaptivePresentationStyle style: UIModalPresentationStyle) -> UIVIEwController? {    let navigationController = UINavigationController(rootVIEwController: controller.presentedVIEwController)    controller.presentedVIEwController.navigationItem.setRightbarbuttonItem(UIbarbuttonItem(barbuttonSystemItem: UIbarbuttonSystemItem.Done,target: self,action: "done"),animated: true)    return navigationController}

这给了我以下结果:

然后我尝试添加具有模糊效果的UIVisualEffectVIEw.起初我只是在显示的控制器视图中添加一个子视图,在检查了视图层次结构后,我意识到我的效果视图实际上是在我的文本视图之上,但是我的文本视图被正确放置了.所以我尝试了insertSubvIEw:atIndex:这样的方法:

func presentationController(controller: UIPresentationController,vIEwControllerForAdaptivePresentationStyle style: UIModalPresentationStyle) -> UIVIEwController? {    let effectVIEw = UIVisualEffectVIEw(effect: UIBlurEffect(style: .light)) as UIVisualEffectVIEw    effectVIEw.setTranslatesautoresizingMaskIntoConstraints(false)    controller.presentedVIEwController.vIEw.insertSubvIEw(effectVIEw,atIndex: 0)    let vIEwList : [String : UIVIEw] = ["effectVIEw" : effectVIEw]    let navigationController = UINavigationController(rootVIEwController: controller.presentedVIEwController)    controller.presentedVIEwController.navigationItem.setRightbarbuttonItem(UIbarbuttonItem(barbuttonSystemItem: UIbarbuttonSystemItem.Done,animated: true)    controller.presentedVIEwController.vIEw.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("H:|[effectVIEw]|",options: nil,metrics: nil,vIEws: vIEwList))    controller.presentedVIEwController.vIEw.addConstraints(NSLayoutConstraint.constraintsWithVisualFormat("V:|-[effectVIEw]|",vIEws: vIEwList))    return navigationController}

但我仍然无法呈现IB中定义的文本视图:

通过视图层次结构,我可以看到,当我在索引0处插入UIVisualEffectVIEw时,我的文本视图以某种方式移动到导航栏下方.

有关如何以编程方式将模糊效果设置在文本下方而不使其消失/移动到导航栏下方的任何想法?

干杯

这个功能对你有帮助吗?
vIEw.insertSubvIEw(vIEw: effectVIEw,belowSubvIEw: label)
总结

以上是内存溢出为你收集整理的swift – iOS 8:将具有模糊效果的UIVisualEffectView应用于紧凑模式下的模态PopOver全部内容,希望文章能够帮你解决swift – iOS 8:将具有模糊效果的UIVisualEffectView应用于紧凑模式下的模态PopOver所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/1030658.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-05-23
下一篇2022-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存