ios - iOS,iOS9+ 提供的原生模糊视图效果?
问题描述
我正在尝试显示视图/弹出窗口(对话框),但是我需要在背景中使用模糊效果并支持 iOS 9+。
它们是否在支持旋转的 UIKit 中原生提供了模糊操作?
我担心模糊效果会在屏幕截图上起作用,一旦我显示我的对话框并且屏幕旋转,就不可能在屏幕截图图像中添加模糊效果。
也许还有其他选择。
解决方案
UIKI 有一个 UIVisualEffectView 来添加漂亮的模糊效果
- 从对象库中拖动 UIVisualEffectView 并将其放在需要使其模糊的视图上(背景)
声明这些属性
@IBOutlet var popupView: UIView!
@IBOutlet weak var visualEffectView: UIVisualEffectView!
var blurEffect:UIVisualEffect!
在 viewDidLoad 把这段代码
blurEffect = visualEffectView.effect
visualEffectView.effect = nil
显示模糊的视图/弹出窗口(对话框)
func presentPopUp() {
self.view.addSubview(popupView)
UIView.animate(withDuration: 0.4) {
self.visualEffectView.effect = self.blurEffect
//make tarnsform from popupView make it show more beauty
}
}
隐藏视图/弹出窗口(对话框)并模糊
func dismissPopUp () {
UIView.animate(withDuration: 0.3, animations: {
self.visualEffectView.effect = nil
//make tarnsform from popupView make it hide more beauty
}) { (success:Bool) in
// dismissPopUp remove it from super View
}
}
推荐阅读
- java - 类显示在自动完成中但无法导入-IntelliJ
- jenkins - 构建过程成功后,Jenkins JNLP4-connect connection from xxx.xxx.xxx.xxx 失败
- powershell - 从 Get-Date/DateTime 对象中减去小时数
- python - 如何在 Kivy 中自动将所有值从一个小部件转移到另一个小部件?
- vue.js - vue 更改特定的 du/component 路由器路径
- jenkins - 如果分支条件不起作用,詹金斯声明性单管道
- xamarin.forms - 使用“html:HtmlLabel(xam.Plugin.HtmlLabel)”而不是 Label Xamarin Forms 时未触发 ItemSelected 事件
- hyperledger-fabric - 不同的 MSP 角色(成员、管理员、对等方、客户端)如何影响 Hyperledger Fabric 背书策略?
- soap - 带有数字的 WSDL 合同列表
- php - PHP 的 NumberFormatter 从哪里获取语言环境格式?