1

UIView次のようにblurEffect定義されたa があります。

 var blurEffect = UIBlurEffect(style: UIBlurEffectStyle.Light)

        let blurEffectView = UIVisualEffectView(effect: blurEffect)
        blurEffectView.frame = containerBar.bounds
        blurEffectView.autoresizingMask = [.FlexibleWidth, .FlexibleHeight]
        self.containerBar.insertSubview(blurEffectView, atIndex: 1) //if you have more UIViews, use an insertSubview API to place it where needed
        self.containerBar.sendSubviewToBack(blurEffectView)

これは正常に機能し、次の結果が生成されます (ぼやけたビューが上にあります)。

ここに画像の説明を入力

私が達成したいのは、写真とビューの間の移行をよりスムーズにして、2つを分ける明確な線がないようにすることです。ぼやけたビューに上alphaから始まり、1.0上に行くグラデーションを持たせることを考えています0.0ぼやけたビューの下部 (カラー グラデーションと同じ考え方)。これにより、移行がより緩やかでスムーズになりますが、この種のアルファ グラデーションを実現する方法がわかりません。

次のコードを追加しました:

            let gradientLayer = CAGradientLayer()
        gradientLayer.frame = containerBar.bounds;
        gradientLayer.colors =  [UIColor.whiteColor().CGColor, UIColor.clearColor().CGColor]
        gradientLayer.startPoint = CGPointMake(0.8, 1.0)
        gradientLayer.endPoint = CGPointMake(1.0, 1.0)
        blurEffectView.layer.mask = gradientLayer;

重複した質問で示唆されているように、これはすべてblurView全体を非表示にすることでした。

4

0 に答える 0