2015-11-26 12 views
0

Я установить фоновое изображение для моего UITableViewController, а затем добавил эффект размытия с помощью следующего кода:UITableViewController Размытие фона не показан с свитком

var blur = UIBlurEffect(style: UIBlurEffectStyle.Dark) 
var blurView = UIVisualEffectView(effect: blur) 
blurView.frame = self.view.bounds 
self.view.insertSubview(blurView, atIndex: 0) 

Когда я прокручиваю вниз, фоновое изображение по-прежнему существует, но эффект размытия существует только для первых нескольких ячеек, которые вписываются в представление одновременно. Как я могу это сделать, так что эффект размытия есть, когда я прокручиваю?

Я попытался добавить эффект размытия в каждую ячейку, но это делает его действительно странным.

ответ

0

Для UITableViewController s self.view is UITableView it self. Это означает, что любое подзаголовок, который вы добавляете в self.view, будет прокручиваться вместе с содержимым таблицы.

Вы можете сделать собственный UIViewController, настроить UITableView вручную и поместить его перед видом размытия (вместо размещения размытия в виде таблицы), или вы можете перемещать местоположение размытия, когда вид таблицы прокручивается.

Чтобы переместить вид размытия, чтобы компенсировать вид таблицы смещение вы можете сделать что-то вроде этого:

override func viewDidLayoutSubviews() { 
    super.viewDidLayoutSubviews() 

    var blurViewFrame = CGRect() 
    blurViewFrame.size = view.bounds.size 
    blurViewFrame.y = tableView.contentOffset.y 
    blurView.frame = blurViewFrame 
}