게임 개발이나 어린이용 애플리케이션, 또는 시각적으로 매력적인 사용자 인터페이스(UI)가 필요한 앱을 개발할 때 텍스트에 그림자 효과를 추가하는 방법을 알아두면 큰 도움이 됩니다. 그림자 효과는 단순히 텍스트를 돋보이게 만드는 것을 넘어, 전체적인 사용자 경험(UX)을 한층 향상시켜 줍니다.
UILabel에 그림자 효과 적용하기
이번 글에서는 iOS 앱에서 UILabel의 텍스트에 그림자(shadow) 효과를 적용하는 방법을 단계별로 살펴보겠습니다.
1단계: 프로젝트 생성
Xcode를 실행한 후 New Project → Single View Application을 선택하고, 프로젝트 이름을 ShadowText로 지정합니다.
2단계: 레이블 추가 및 IBOutlet 연결
Main.storyboard에 UILabel을 추가한 뒤, 해당 레이블의 @IBOutlet을 생성하고 이름을 lblHelloWorld로 지정합니다.
3단계: 그림자 확장(Extension) 코드 작성
ViewController.swift 파일에 아래의 UILabel 확장(Extension) 코드를 전체 추가합니다. 이 확장은 텍스트 색상 설정과 함께 그림자의 위치, 반경, 불투명도 등을 손쉽게 조절할 수 있도록 해줍니다.
extension UILabel {
func UILableTextShadow(color: UIColor){
self.textColor = color
self.layer.masksToBounds = false
self.layer.shadowOffset = CGSize(width: 1, height: 1)
self.layer.rasterizationScale = UIScreen.main.scale
self.layer.shadowRadius = 6.0
self.layer.shadowOpacity = 1.0
}
}4단계: viewDidLoad에서 함수 호출
이제 viewDidLoad 메서드에서 위에서 만든 함수를 레이블에 호출하면 됩니다. 아래 예시에서는 빨간색(red) 텍스트에 그림자를 적용했습니다.
override func viewDidLoad() {
super.viewDidLoad()
self.lblHelloWorld.UILableTextShadow(color: UIColor.red)
}실행 결과 확인
애플리케이션을 실행하면 레이블 텍스트에 부드러운 그림자 효과가 적용된 것을 확인할 수 있습니다.

추가 팁: 그림자 스타일 조절하기
각 속성 값을 조정하면 다양한 분위기의 그림자를 연출할 수 있습니다.
- shadowOffset: 그림자의 위치를 조절합니다. width와 height 값이 클수록 그림자가 멀어집니다.
- shadowRadius: 그림자의 번짐 정도를 결정합니다. 값이 클수록 더 부드럽고 퍼진 느낌을 줍니다.
- shadowOpacity: 그림자의 진하기를 조절합니다. 0.0(투명)부터 1.0(불투명) 사이의 값을 사용합니다.
또한 masksToBounds를 false로 설정해야 레이어 경계 밖으로 그림자가 정상적으로 표시되므로, 이 속성을 반드시 함께 설정해 주세요.