我为 UITableViewController 设置了背景图像,然后使用以下代码添加了模糊效果:
var blur = UIBlurEffect(style: UIBlurEffectStyle.Dark)
var blurView = UIVisualEffectView(effect: blur)
blurView.frame = self.view.bounds
self.view.insertSubview(blurView, atIndex: 0)
当我向下滚动时,背景图像仍然存在,但模糊效果仅适用于一次适合 View 的前几个单元格。我怎样才能做到滚动时有模糊效果?
我尝试为每个单元格添加模糊效果,但这使它看起来非常奇怪。
最佳答案
对于 UITableViewController
来说,self.view
是 UITableView
本身。这意味着您添加到 self.view 的任何 subview 都将与 TableView 的内容一起滚动。
您可以制作自己的 UIViewController
,手动设置 UITableView
并将其放置在模糊 View 前面(而不是将模糊 View 放置在表格 View 内)或者您可以在滚动表格 View 时移动模糊 View 的位置。
要移动模糊 View 以补偿表格 View 的偏移,您可以执行以下操作:
override func viewDidLayoutSubviews() {
super.viewDidLayoutSubviews()
var blurViewFrame = CGRect()
blurViewFrame.size = view.bounds.size
blurViewFrame.y = tableView.contentOffset.y
blurView.frame = blurViewFrame
}
关于ios - UITableViewController 模糊背景不显示滚动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33947420/