Как мне использовать focus-движок tvOS с SwiftUI? - PullRequest
1 голос
/ 11 октября 2019

У меня есть некоторые проблемы с механизмом фокусировки с tvOS и SwiftUI.

Когда я использую кнопки в SwiftUI, механизм фокусировки справляется с этим отлично (кнопка автоматически фокусируется, и она всплывает вперед с забавной анимациейкогда это сфокусировано). Когда я использую VStacks и HStacks для создания сетки с изображениями, .focusable() действительно обрабатывает фокусную часть, но визуально на экране ничего не видно, кроме сетки с возможностью прокрутки.

Я действительно хочу, чтобы мои изображения всетка должна быть выделена, а также выдвинута вперед, как я легко могу сделать в TVML / TVJS (но кто не хочет переходить на родной). Я хочу посмотреть, смогу ли я перейти на родную систему, но Apple очень мало делает с tvOS в своих демонстрациях и документации.

Я пытался найти примеры проектов, которые позаботятся об этом, но я не могунайти что-нибудь. Может быть, кто-то здесь знает. Большое спасибо заранее!

1 Ответ

1 голос
/ 23 октября 2019

Да, не так много, чтобы найти. Это то, что я сделал до сих пор:

struct DefaultCell: View {
    @State var focused: Bool = false

    var record : Record
    var body: some View {

        VStack{
            Image("placeholder")
            Text(record.title)
                .foregroundColor(self.focused ? .red : .gray)

        }
        .focusable(true, onFocusChange:{ (changed) in
            self.focused = changed
        })
    }
}

Моя запись выглядит следующим образом:

struct Record: Decodable, Hashable {
    var id:Int;
    let title: String;
    let poster_path,overview: String?;
}
...