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.viewはそれUITableView自体です。つまり、追加したサブビュー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 に答える