[swift] CoreAnimation 레이어 마스킹
Core Animation을 사용하면 UI 요소를 보다 다채롭게 표현할 수 있습니다. 이 중에서도 레이어 마스킹은 레이어의 일부분만을 보이도록 하는 강력한 기능 중 하나입니다.
레이어 마스킹을 적용하려면 우선 마스크로 활용할 이미지나 도형을 레이어로 정의해야 합니다. 다음으로 이 마스크 레이어를 기본 레이어의 mask
프로퍼티에 할당합니다. 이렇게 하면 마스크 레이어의 색상 정보에 따라 기본 레이어의 투명도가 결정됩니다.
let maskLayer = CALayer()
maskLayer.frame = CGRect(x: 0, y: 0, width: 100, height: 100)
let maskImage = UIImage(named: "mask_image")
maskLayer.contents = maskImage?.cgImage
parentLayer.mask = maskLayer
위 코드에서 parentLayer
는 마스크가 적용될 대상이 되는 레이어를 가리킵니다.
레이어 마스킹을 적용하면, 원형, 사각형, 이미지 등 다양한 모양으로 UI 요소를 효과적으로 보여줄 수 있습니다.
위의 코드는 CALayer
를 사용한 예시이지만, UIView의 layer 프로퍼티를 통해서도 마스킹을 적용할 수 있습니다. UIView를 상속받아 새로운 뷰를 만들 경우, 해당 뷰의 layer.mask
프로퍼티에 마스크로 사용할 레이어를 설정하면 됩니다.
레이어 마스킹을 통해 흥미로운 UI 효과를 연출하는 것은 매우 간단한데, 막상 사용해보면 상당히 강력한 기능임을 알 수 있습니다.
더 자세한 내용은 Core Animation Programming Guide를 참고하세요.