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