ios - UITableViewController 模糊背景不显示滚动

标签 ios swift uitableview uivisualeffectview uiblureffect

我为 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.viewUITableView 本身。这意味着您添加到 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/

相关文章:

ios - 如何在其他viewController中使用变量? - swift

ios - 在 iOS 中使用 Swift 更改 UIAlertAction 的 UIAlertController 按钮标题的字体大小

ios - 仅在异步函数执行完毕后运行代码

iphone - 从字典中的数组中删除与搜索词匹配的所有值(字符串)?

ios - 使用 Storyboard的 UItableView 的空网格

ios - 这有可能强制 iOS 键盘弹出英文键盘吗?

iOS 重定向到新的 ViewCONtroller 不会加载所有 UI 元素

ios - connectionWithMediaType 返回零

ios - 如何在 UILabel 中将第一个字母大写?

objective-c - 重用以编程方式创建的 UITableView?