UIVisualEffectView

Panther·2021년 10월 3일
0

https://developer.apple.com/documentation/uikit/uivisualeffectview

"An object that implements some complex visual effects."

몇 가지 복잡한 시각적 효과를 구현하는 객체입니다.

Declaration

@MainActor class UIVisualEffectView : UIView

Overview

원하는 효과에 따라서 효과는 뷰 뒤에서 계층을 갖는 컨텐트 혹은 비주얼 이펙트 뷰의 contentView에 추가된 컨텐트에 영향을 미칠 수 있습니다. 비주얼 이펙트 뷰를 기존 뷰에 적용하고, 기존 뷰에 블러 혹은 바이브런시 효과를 적용하기 위해 UIBlurEffect 혹은 UIVibrancyEffect 객체를 적용하시기 바랍니다. 비주얼 이펙트 뷰를 뷰 계층구조에 추가한 후 비주얼 이펙트 뷰의 contentView 속성에 하위뷰를 추가할 수 있습니다. 비주얼 이펙트 뷰 자체에 직접 하위뷰를 추가하지 않아야 합니다.

Setting the Correct Alpha Value

UIVisualEffectView 클래스를 사용할 때 1보다 작은 알파 값 사용을 피해야 합니다. 부분적으로 투명한 뷰를 생성하는 것은 오프스크린 렌더링이 통과하는 동안, 시스템이 뷰와 모든 관련 하위뷰를 조합하도록 합니다. UIVisualEffectView 객체는 정확하게 보이기 위해 상단에 계층이 된 컨텐트의 부분으로 조합될 필요가 있습니다. 비주얼 이펙트 뷰 혹은 이 뷰의 슈퍼뷰에 에 1보다 작은 알파를 설정하는 것은 부정확하게 보이는 효과를 초래하거나 아예 나타나지 않게 됩니다.

Using Masks with a UIVisualEffectView

UIVisualEffectView에 직접적으로 적용된 마스크는 contentView를 포함시키면서 비주얼 이펙트를 제공하는 내부 뷰에 전달됩니다. UIVisualEffectView 객체의 슈퍼뷰에 마스크를 적용하는 것은 효과가 실패하는 것을 초래하고, 예외가 반환됩니다.

UIVisualEffectView에 제공된 모든 마스크는 실제로 마스크를 수행하는 뷰가 아닙니다. UIKit은 뷰의 사본을 만들고, 이 사본을 각 하위뷰에 적용합니다. 마스크에 크기 변경을 반영하려면 기존 마스크에 변경사항을 적용해야 하고, 이펙트 뷰에서 마스크를 리셋해야 합니다.

Capturing a Snapshot of a UIVisualEffectView

많은 효과들은 UIVisualEffectView를 호스트하는 윈도우로부터 지원을 요구합니다. UIVisualEffectView만의 스냅샷을 갖길 시도하는 것은 효과를 포함하지 않는 스냅샷의 결과를 초래합니다. UIVisualEffectView를 포함하는 뷰 계층구조의 스냅샷을 가지려면 전체 UIWindow 혹은 UIWindow를 포함하는 UIScreen 전체의 스냅샷을 가져야 합니다.

See Also


Visual Effects

UIVisualEffect

비주얼 이펙트 뷰, 블러, 바이브런시 효과 객체에 대한 이니셜라이저입니다.

https://developer.apple.com/documentation/uikit/uivisualeffect
https://velog.io/@panther222128/UIVisualEffect

UIVibrancyEffect

비주얼 이펙트 뷰 뒤에 계층이 된 컨텐트의 색상을 증폭하고 조정하는 객체입니다.

https://developer.apple.com/documentation/uikit/uivibrancyeffect
https://velog.io/@panther222128/UIVibrancyEffect

UIBlurEffect

비주얼 이펙트 뷰 뒤에 계층이 된 컨텐트로 블러 효과를 적용하는 객체입니다.

https://developer.apple.com/documentation/uikit/uiblureffect
https://velog.io/@panther222128/UIBlurEffect


0개의 댓글