【发布时间】:2016-01-03 18:46:45
【问题描述】:
我有一个具有全屏 UIImageView 的视图控制器。当控制器加载时,我只是在整个屏幕上设置了模糊效果。 UIImageView 的内容模式设置为 scaleAspectFill。我这样设置模糊效果:
@IBOutlet weak var previewImage: UIImageView!
override func viewDidLoad() {
super.viewDidLoad()
previewImage.image = userPhoto
let blur = UIVisualEffectView(effect: UIBlurEffect(style: .Light))
blur.frame = self.view.bounds
previewImage.addSubview(blur)
}
当我在 iPhone 6 上测试应用程序时,我得到了以下结果:
右边有一个偏移量,我不知道为什么。如果下面的图片是正确全屏的,但我可以获得模糊效果以适应它...
****已编辑****
我直接将模糊效果应用到VC的视图,现在效果很好,但是我想知道为什么当我将子视图添加到UIImage视图时它不起作用...
【问题讨论】:
-
何时调用此代码?可能在
viewDidLoad? -
是的,我调用
viewDidLoad中的代码 -
尝试在视图中调用它会出现框架而不是边界
-
相同的输出,可能与 UIImageView 本身有关。我使用 autoLayout 来修复约束,使视图占据全屏,从而导致上下约束为 0,左右约束为 -20
-
视图的边界是正确的,但你没有将它添加到视图中,而是添加到 previewImage