12
9

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?