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全体を非表示にすることでした。