UIBlurEffectView小于autolayouted parentView虽然相同的框架

时间:2015-05-22 19:33:50

标签: ios swift uiview autolayout uivisualeffectview

我有一个p->~strMyStruct(); free(p); 用于登录,位于屏幕中间。它被限制在周围视图的0.25高度(覆盖整个窗口)

我注意到,如果我创建一个UIView(通过方法UIVisualEffectView作为blurBackgroundForView(_)的背景,那么它太小了(检查代码我是如何创建的{{ 1}})虽然它有相同的框架。 将UIView更改为UIVisualEffectView时,您可以看到效果。 视图高于Blureffect。

的ViewController

backgroundColor

blurBackgroundForView(_)

.greenColor

enter image description here

1 个答案:

答案 0 :(得分:1)

不保证在viewWillAppear中通过自动布局设置帧。

尝试在viewDidLayoutSubviews中设置模糊视图的帧。或者,您可以直接在模糊视图上设置自动调整遮罩,以便在其超级视图调整大小时调整其大小:

blurView.autoresizingMask = UIViewAutoresizingFlexibleHeight | UIViewAutoresizingFlexibleWidth;

您还应该在viewWillAppear中调用超级方法。