TableView с фоном изображения и эффект размытия - Swift

У меня есть небольшая проблема: я хотел бы установить изображение в качестве фона в TableViewController. Я попробовал это:

class SquadreController: UITableViewController {

    override func viewDidLoad()
    {
        super.viewDidLoad()

        var sfondo = UIImage(named: "sfondo")
        self.view.backgroundColor = UIColor(patternImage: sfondo!)

    }

Затем я придаю эффект размытия виду, например так:

let blur = UIBlurEffect(style: UIBlurEffectStyle.Light)
let blurView = UIVisualEffectView(effect: blur)
blurView.frame = self.view.bounds
view.addSubview(blurView)

Но есть большая проблема. Я работаю в TableView и TableView, TableCell, NavigationItem и т. Д. Все исчезли после применения размытия. Кто-нибудь может мне помочь?

Большое спасибо!

3 ответа

Решение

Попробуйте использовать view.insertSubView(blurView, atIndex: 0) вместо view.addSubview(blurView) as! UIImageView

Этот вопрос - более старый вопрос, и ответ Epic Defeater работает в некотором роде, есть гораздо лучший способ сделать это. Вместо добавления blurViewвам нужно переопределить фоновый вид. В частности, вам нужно переопределить tableView.backgroundView,

let blur = UIBlurEffect(style: .light)
let blurView = UIVisualEffectView(effect: blur)
blurView.frame = self.view.bounds
tableView.backgroundView = blurView

Это будет работать, только если вы установили цвет фона, чтобы очистить.

Мы также можем добавить подпредставление ниже или выше любых других представлений, используя insertSubview.

//Inserting below your subView
self.view.insertSubview(subview1_name, belowSubview: subview2_name)

//Inserting above your subView
self.view.insertSubview(subview1_name, aboveSubview: subview2_name)

/// You can use any of your view, instead of self.view
Другие вопросы по тегам