Swift Blur Effect

Hose KIM·2020년 11월 12일
0

iOS 개발

목록 보기
1/4

내가 하고 싶은 것은 버튼을 클릭 했을 때, Modal view가 나타나는데, 그 때 이전 뷰의 배경을 blur 처리 하고 싶은 것이다.

A view -> B view (Modal)
B view가 나오면 blur 처리된 A view가 배경이 되는 것이다.
즉, B view에 부분적으로 alpha 값을 낮게 설정해줘서 투명하게 해줘야한다.

A View에서 button action

@objc private func didTapButton() {
        
        let sb = UIStoryboard(name: "MyStoryboard", bundle: nil)
        let vc = sb.instantiateViewController(identifier: "B") as! B
        
        let blurEffect = UIBlurEffect(style: UIBlurEffect.Style.light)
        let blurEffectView = UIVisualEffectView(effect: blurEffect)
          
        blurEffectView.frame = view.bounds
        
        blurEffectView.autoresizingMask = [.flexibleWidth, .flexibleHeight]
    
        view.addSubview(blurEffectView)
      
        vc.modalTransitionStyle = .coverVertical
        vc.modalPresentationStyle = .overCurrentContext
        self.present(vc, animated: true, completion:  nil)    
    }

B view에서

class B: UIViewController {

    @IBOutlet weak var popupView: UIView!
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        view.backgroundColor = UIColor.gray.withAlphaComponent(0.1)
    }

UIBlurEffect.Style에 extra light, light, dark가 있는데 extraLight underlying view보다 더 밝게, light는 같은 정도, dark는 더 어둡게를 뜻한다.

0개의 댓글