Adding User-Focusable Elements to a tvOS App

Panther·2021년 8월 5일
0

https://developer.apple.com/documentation/uikit/focus-based_navigation/adding_user-focusable_elements_to_a_tvos_app

"Create intuitive and easily manipulated user-interactive controls for your tvOS app."

tvOS 앱을 위한 직관적이고 쉽게 조작되는 사용자 상호작용 컨트롤을 생성합니다.

Overview

애플 TV에서 사람들은 무비 포스터, 앱, 버튼과 같은 인터페이스 요소를 탐색하기 위해 리모트 혹은 게임 컨트롤러를 사용합니다. 각 아이템은 들어올 때마다 강조되면서 나타납니다. 강조된 아이템은 초점이 맞춰져 있다고 부르거나 포커스에 있다고 부릅니다. 이 아이템은 위로 들어올려져 있거나 다른 아이템과 대비되는 특징의 모습을 나타내게 됩니다. (아이템을 사용자가 선택하진 않았지만 강조하고 있을 때 포커스가 맞춰진 것으로 간주합니다.) 사용자는 포커스 업데이트를 촉발하는 다른 UI 아이템으로 탐색함으로써 포커스를 이동시킵니다.

Add Focusable Items to the View

Xcode에서 앱에 추가하고자 하는 아이템을 위해 라이브러리 창을 탐색하고, 아이템을 드래그해서 스토리보드로 이동시키기 바랍니다. 몇 가지 UIKit 요소는 기본값으로 초점이 맞춰질 수 있는 요소이며, 버튼(UIButton), 텍스트 필드(UITextField), 테이블 셀(UITableViewCell)을 포함합니다. 왼쪽 상단 아이템은 앱이 launch될 때 포점이 맞춰집니다. (오른쪽에서 왼쪽으로 읽는 언어는 오른쪽 상단 아이템이 초기 포커스 상태가 됩니다.) 기본값으로 초점이 맞춰질 수 있는 UIKit 요소에 추가적으로 무엇인가를 할 필요는 없습니다. 그러나 초점이 맞춰질 수 있는 요소로써 SceneKit, SpriteKit 노드를 추가할 수도 있습니다. SceneKit 혹은 SpriteKit 노드를 초점이 맞춰질 수 있는 상태로 만드려면, 노드의 focusBehavior 속성을 focusable로 설정하시기 바랍니다.

node.focusBehavior = .focusable

Design Your Layout in a Grid Pattern

초점이 맞춰질 수 있는 아이템 사이에서 포커스를 움직이도록 하는 가장 쉬운 방법은 그리드 패턴에 아이템을 정렬하는 것입니다. 리모트에서 스와이프하는 것은 스와이프 방향에서 초점이 맞춰질 수 있는 모든 아이템을 찾기 위해 포커스 엔진(포커스와 움직임을 제어하는 시스템)을 깨웁니다. 그러면 발견된 첫 번째 아이템은 초점이 맞춰진 아이템이 됩니다. Figure 1은 사용자가 오른쪽으로 스와이프할 때 포커스 엔진에 의해 발견된 아이템을 보여주고 있으며, 이를 통해 이 아이템은 초점이 맞춰지게 됩니다.

Figure 1 Swiping right on the remote

Figure 2는 사용자가 스와이프를 아래 방향으로 움직일 때 포커스 엔진에 의해 발견된 아이템을 보여주며, 이 아이템은 초점이 맞춰지게 됩니다.

Figure 2 Swiping down on the remote

포커스 엔진이 스와이프 방향에서 어떠한 아이템이라도 발견하지 못하는 경우 기본값으로 초점이 맞춰진 아이템은 변경되지 않습니다. Figure 3에서 보이는 것과 동일합니다.

Figure 3 Swiping down with no items

필요한 경우 UI에서 초점이 맞춰질 수 있는 아이템을 다른 것으로 재연결하기 위해 UIFocusGuide를 사용해서 기본값 동작을 변경시킬 수도 있습니다.

See Also


Focus Interactions

About Focus Interactions for Apple TV

https://developer.apple.com/documentation/uikit/focus-based_navigation/about_focus_interactions_for_apple_tv
https://velog.io/@panther222128/About-Focus-Interactions-for-Apple-TV

UIFocusSystem

현재 초점이 맟줘진 아이템을 쿼리하거나 재평가합니다.

https://developer.apple.com/documentation/uikit/uifocussystem
https://velog.io/@panther222128/UIFocusSystem

UIFocusUpdateContext

하나의 뷰로부터 다른 뷰로의 특정 포커스 업데이트와 관련한 정보를 제공하는 객체입니다.

https://developer.apple.com/documentation/uikit/uifocusupdatecontext
https://velog.io/@panther222128/UIFocusUpdateContext

UIFocusMovementHint

초점이 맞춰진 아이템에 대한 이동 힌트 정보를 제공합니다.

https://developer.apple.com/documentation/uikit/uifocusmovementhint
https://velog.io/@panther222128/UIFocusMovementHint


0개의 댓글