[swift] SwiftUI 뷰의 포커스 변경

SwiftUI는 포커스가 변경되었을 때 사용자에게 시각적으로 알림을 제공하는 기능을 제공합니다. 포커스를 변경하는 예제를 살펴봅시다.

포커스 변경하기

SwiftUI에서 뷰의 포커스를 변경하려면 focusableonFocusChange 수식어를 사용할 수 있습니다.

import SwiftUI

struct ContentView: View {
    @State private var isFocused: Bool = false
    
    var body: some View {
        Text("Hello, World!")
            .focusable(true) { isFocused in
                self.isFocused = isFocused
            }
            .onTapGesture {
                if self.isFocused {
                    // 포커스가 있을 때의 동작
                } else {
                    // 포커스가 없을 때의 동작
                }
            }
    }
}

위 예제에서는 Text 뷰를 탭했을 때 포커스를 변경할 수 있습니다.

포커스 상태에 따른 시각적 효과 표시하기

isFocused를 이용하여 포커스 상태에 따른 시각적 효과를 적용할 수 있습니다.

Text("Hello, World!")
    .focusable(true) { isFocused in
        self.isFocused = isFocused
    }
    .scaleEffect(isFocused ? 1.2 : 1.0)
    .onTapGesture {
        // 포커스에 따른 동작
    }

위 예제에서는 포커스 상태에 따라 텍스트의 크기를 변경하고 있습니다.

포커스를 변경하여 사용자 경험을 향상시키는 것은 SwiftUI에서 간단하게 구현할 수 있습니다.

참고 자료