Добавление эффекта размытия для просмотра

У меня есть класс представления, который используется для показа счетчика с размытым фоновым видом. Я добавляю это к другому представлению во время выполнения, и все работает отлично. Когда я добавляю это представление в другое представление ViewControllers, эффект каким-то образом не виден. Вид добавляется, я проверяю его, устанавливая зеленый цвет фона, и он есть. Но сам эффект не виден. Я добавляю представление в таким образом

 self.view.addSubview(self.loadingView)
 self.loadingView.frame = CGRect(origin: .zero, size:self.view.frame.size)

. Реализация, как показано ниже,

final class LoaderView: UIView {

    fileprivate let spinner = UIActivityIndicatorView(activityIndicatorStyle: .whiteLarge)
    fileprivate let effect = UIBlurEffect(style: .light)
    fileprivate let backgroundView = UIVisualEffectView(frame:.zero)

    override init(frame: CGRect) {

        spinner.startAnimating()

        super.init(frame: frame)
        backgroundView.effect = effect

        addSubview(backgroundView)
        addSubview(spinner)
    }

    @available(*, unavailable)
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    func setSpinnerColor(color:UIColor){
        spinner.color = color
    }

    override func layoutSubviews() {
        super.layoutSubviews()

        backgroundView.frame = CGRect(x: 0, y: 0, width: self.bounds.height/5, height: self.bounds.height/5)
        backgroundView.center = CGPoint(x:self.bounds.size.width / 2.0, y: self.bounds.size.height / 2.0)
        backgroundView.clipsToBounds = true
        backgroundView.cornerRadius = 10
        spinner.center = center
    }
}

0 ответов

Другие вопросы по тегам