0

我为我的 UITableViewController 设置了背景图像,然后使用以下代码添加了模糊效果:

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

当我向下滚动时,背景图像仍然存在,但模糊效果仅出现在一次适合视图的前几个单元格中。我怎样才能使它在滚动时出现模糊效果?

我尝试为每个单元格添加模糊效果,但这让它看起来很奇怪。

4

1 回答 1

0

因为UITableViewControllersself.viewUITableView它自己。这意味着您添加的任何子视图都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
}
于 2015-11-26T21:54:10.017 回答