Я хотел бы реализовать UIVisualEffectView
, чтобы применить эффект размытия к представлению, чтобы показать представление, которое находится за ним.
Этот вид, который должен иметь размытый фон, представляет собой UITableViewController
, встроенный в UINavigationController
, и он будет либо представлен в popover на iPad, либо будет представлен полноэкранным образом на iPhone, благодаря iOS 8 адаптивных сегментов (присутствует как Popover). Когда этот диспетчер представлений находится в popover, я хочу, чтобы фон размыл то, что находится под popover, и когда он отображается в полноэкранном режиме, я хочу, чтобы фон размыл предыдущий контроллер представления.
Я попытался реализовать это и не добился успеха. Я даже не могу заставить эффект размытия работать для popover. Я думал, что этот код должен сделать трюк:
//In viewDidLoad on the UITableViewController subclass:
let effectView = UIVisualEffectView(effect: UIBlurEffect(style: .Light))
effectView.frame = tableView.frame
tableView.addSubview(effectView)
Я также попытался добавить subview к tableView.backgroundView
, я попробовал установить backgroundView
на мой effectView
, я пытался использовать ограничения Autolayout вместо установки фрейма, но ничего не сработало. Можете ли вы помочь мне выполнить желаемое поведение?
Пример того, что я пытаюсь получить:
iPad popover:
iPhone модальная презентация: