2015-05-21 2 views
1

У меня есть UIView, и я установил его рамку в своем viewDidLoad. Затем я использую blurBackgroundForView функцию, чтобы размыть его:UIBlurEffect не работает, как ожидалось, на моем UIView

override func viewDidLoad() { 
    super.viewDidLoad() 
    view.frame = CGRectMake(0, superView.frame.maxY-height, superView.frame.width, height) 
    // The view is supposed to peak in from the bottom 
    AnimationHelper.blurBackgroundForView(view) 
} 

static func blurBackgroundForView(view: UIView!){ 
    view.backgroundColor = .clearColor() 
    let blurEffect = UIBlurEffect(style: .Light) 
    let blurEffectView = UIVisualEffectView(effect: blurEffect) 
    blurEffectView.frame = view.frame 
    view.insertSubview(blurEffectView, atIndex: 0) 
    } 
} 

Вопрос заключается в том, что фон из UIView является НЕ размыты. Когда я перемещаю вызов функции blurBackgroundView(view) выше view.frame = ... Я получаю размытый вид, но размытый вид очень большой.

+0

Попробуйте использовать: 'blurEffectView.frame = view.bounds' – aguilarpgc

+0

Переместить код в ваш' viewDidLoad' к вашему 'viewDidAppear', возможно. Код, который вы предоставили, отлично подходит для меня. –

ответ

1

Рамка для blurEffectView должна быть CGRectMake (0, 0, superview.frame.width, высота)