https://developer.apple.com/documentation/uikit/uivisualeffectview
"An object that implements some complex visual effects."
몇 가지 복잡한 시각적 효과를 구현하는 객체입니다.
@MainActor class UIVisualEffectView : UIView
원하는 효과에 따라서 효과는 뷰 뒤에서 계층을 갖는 컨텐트 혹은 비주얼 이펙트 뷰의 contentView
에 추가된 컨텐트에 영향을 미칠 수 있습니다. 비주얼 이펙트 뷰를 기존 뷰에 적용하고, 기존 뷰에 블러 혹은 바이브런시 효과를 적용하기 위해 UIBlurEffect
혹은 UIVibrancyEffect
객체를 적용하시기 바랍니다. 비주얼 이펙트 뷰를 뷰 계층구조에 추가한 후 비주얼 이펙트 뷰의 contentView
속성에 하위뷰를 추가할 수 있습니다. 비주얼 이펙트 뷰 자체에 직접 하위뷰를 추가하지 않아야 합니다.
UIVisualEffectView
클래스를 사용할 때 1보다 작은 알파 값 사용을 피해야 합니다. 부분적으로 투명한 뷰를 생성하는 것은 오프스크린 렌더링이 통과하는 동안, 시스템이 뷰와 모든 관련 하위뷰를 조합하도록 합니다. UIVisualEffectView
객체는 정확하게 보이기 위해 상단에 계층이 된 컨텐트의 부분으로 조합될 필요가 있습니다. 비주얼 이펙트 뷰 혹은 이 뷰의 슈퍼뷰에 에 1보다 작은 알파를 설정하는 것은 부정확하게 보이는 효과를 초래하거나 아예 나타나지 않게 됩니다.
UIVisualEffectView
에 직접적으로 적용된 마스크는 contentView
를 포함시키면서 비주얼 이펙트를 제공하는 내부 뷰에 전달됩니다. UIVisualEffectView
객체의 슈퍼뷰에 마스크를 적용하는 것은 효과가 실패하는 것을 초래하고, 예외가 반환됩니다.
UIVisualEffectView
에 제공된 모든 마스크는 실제로 마스크를 수행하는 뷰가 아닙니다. UIKit
은 뷰의 사본을 만들고, 이 사본을 각 하위뷰에 적용합니다. 마스크에 크기 변경을 반영하려면 기존 마스크에 변경사항을 적용해야 하고, 이펙트 뷰에서 마스크를 리셋해야 합니다.
많은 효과들은 UIVisualEffectView
를 호스트하는 윈도우로부터 지원을 요구합니다. UIVisualEffectView
만의 스냅샷을 갖길 시도하는 것은 효과를 포함하지 않는 스냅샷의 결과를 초래합니다. UIVisualEffectView
를 포함하는 뷰 계층구조의 스냅샷을 가지려면 전체 UIWindow
혹은 UIWindow
를 포함하는 UIScreen
전체의 스냅샷을 가져야 합니다.
비주얼 이펙트 뷰, 블러, 바이브런시 효과 객체에 대한 이니셜라이저입니다.
https://developer.apple.com/documentation/uikit/uivisualeffect
https://velog.io/@panther222128/UIVisualEffect
비주얼 이펙트 뷰 뒤에 계층이 된 컨텐트의 색상을 증폭하고 조정하는 객체입니다.
https://developer.apple.com/documentation/uikit/uivibrancyeffect
https://velog.io/@panther222128/UIVibrancyEffect
비주얼 이펙트 뷰 뒤에 계층이 된 컨텐트로 블러 효과를 적용하는 객체입니다.
https://developer.apple.com/documentation/uikit/uiblureffect
https://velog.io/@panther222128/UIBlurEffect