LoginSignup
12
9

More than 3 years have passed since last update.

UIVisualEffectViewを使ってUIVibrancyEffectだけを表示する

Posted at

はじめに

UIVisualEffectViewとは

UIVisualEffectViewは背後にあるViewにエフェクトをかけてくれるViewです。

UIVisualEffectViewにはBlurEffectとVibrancyEffectがあります。

Blur:背後のViewにエフェクトをかけることによって、磨りガラス様な感じになります

Vibrancy:UIBlurEffectのViewの上に置くことによって。曇りガラスの様になります。

使うときはUIVisualEffectViewにaddSubviewしないで、UIVisualEffectView.contentViewに追加します

iPhoneでパスコード入力画面や、コントロールセンターで使われており、以下のパスコード入力画面では、背景がBlurEffectでNumberButtonの背景がVibrancyEffectになっています。

IMG_7521.PNG

今回はUIBlurEffectは表示せず、UIVibrancyEffectだけ表示してみよう思います。

やってみる

まずはImageViewの上にVisual Effect View with Blur and Vibrancyを置いてみます。

スクリーンショット 2019-10-12 12.37.32.png

そうすると磨りガラス効果のViewと曇りガラス効果のViewが一気に展開されます。

スクリーンショット 2019-10-12 13.01.56.png

そこにTextなどを入れると、この様な曇りガラスのテキストになります

スクリーンショット 2019-10-12 13.43.53.png

ここからUIVibrancyEffectがかかったTextだけを表示していきたいと思います
方法としてはBlurEffectViewにmaskをかけていきます、

var mask: UIView? { get set }

maskはUIView型なので、UIImageViewやUIViewなど色々な物をUIVibrancyEffectだけを表示ことが可能です

class CatalinaViewController: UIViewController {

    @IBOutlet weak var text: UILabel!
    @IBOutlet weak var blurEffectView: UIVisualEffectView!

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view.
        self.blurEffectView.mask = text
    }
}

アプリを実行すると・・・・・・・・・できました!!

Simulator Screen Shot - iPhone 11 Pro - 2019-10-12 at 13.52.06.png

参考リンク

UIVisualEffectView

12
9
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
9