#背景をぼかしたい!!
背景をぼかしたいなーと思った時にはUIVisualEffectViewを使うと思うんですけど、ぼかす処理を毎回書くのがめんどくさい!!
というわけで超簡単に背景ぼかしができるextensionを作りましょう
#extensionを書く!
新しいファイルを作ってこれを書きましょう!
addVisualEffect.swift
import UIKit
extension UIView {
func addVisualEffect() {
//スクリーンサイズ取得!
let width = UIScreen.main.bounds.size.width
let height = UIScreen.main.bounds.size.height
//ブラーエフェクト生成!
let blurEffect = UIBlurEffect(style: .light)
//ブラーエフェクトからエフェクトビューを生成!
let visualEffectView = UIVisualEffectView(effect: blurEffect)
//エフェクトビューのサイズ指定!
visualEffectView.frame = CGRect(x: 0, y: 0, width: width, height: height)
//もとのViewにaddSubView!!
self.addSubview(visualEffectView)
//重ね順を一番下に!!
self.sendSubviewToBack(visualEffectView)
}
}
ポイントはサイズをしっかり合わせるところと重ね順を一番下にすることですかね!
あ、そういえばブラーエフェクトには種類があるんですよ
(ここに詳しく書いてありました! -> https://dev.classmethod.jp/references/ios8-uivisualeffectview/ )
extraLightとlightとdartの3種類です!
だから引数を指定してあげればもっと使い勝手良くなる気がします
僕はlightしか使わないのでこれでいきます!
#実際に使う!
ViewController.swift
override func viewDidLoad() {
super.viewDidLoad()
self.view.addVisualEffect()
}
たったこれだけで背景をぼかすことができるんです!!便利!!
#最後に
メモ程度の記事に最後までつきあってくれてありがとうございます
是非使ってみてください!!
環境:Xcode11.6(11E708)