В моем CarPlaySceneDelegate.swift у меня есть две вкладки:
Первая вкладка использует CPListImageRowItem с CPListImageRowItemRowElement. Направление прокрутки инвертировано, а боковая кнопка работает неправильно.
На второй вкладке используется несколько объектов CPListItem. Никаких проблем: прокрутка работает в правильном направлении, а боковая кнопка ведет себя так, как ожидалось.
Действия для воспроизведения
Запустите приложение.
Подключитесь к CarPlay.
На первой вкладке прокрутите вверх и вниз, затем используйте боковую кнопку для навигации.
На второй вкладке вкладку, прокрутите вверх и вниз, затем используйте боковую кнопку для навигации.
Как мы заметили, поведение прокрутки на двух вкладках различно.
В моем CarPlaySceneDelegate.swift у меня есть две вкладки: [list] [*]Первая вкладка использует CPListImageRowItem с CPListImageRowItemRowElement. Направление прокрутки инвертировано, а боковая кнопка работает неправильно. [*]На второй вкладке используется несколько объектов CPListItem. Никаких проблем: прокрутка работает в правильном направлении, а боковая кнопка ведет себя так, как ожидалось. [/list] [b]Действия для воспроизведения[/b] [list] [*]Запустите приложение. [*]Подключитесь к CarPlay. [*]На первой вкладке прокрутите вверх и вниз, затем используйте боковую кнопку для навигации. [*]На второй вкладке вкладку, прокрутите вверх и вниз, затем используйте боковую кнопку для навигации. [*]Как мы заметили, поведение прокрутки на двух вкладках различно. [/list] [b]Пример кода:[/b] [code]import CarPlay import UIKit
class CarPlaySceneDelegate: UIResponder, CPTemplateApplicationSceneDelegate {
private func setupTemplates(with image: UIImage) { // Tab 1 : un seul CPListImageRowItem avec 12 CPListImageRowItemRowElement let elements: [CPListImageRowItemRowElement] = (1...12).map { index in CPListImageRowItemRowElement(image: image, title: "test \(index)", subtitle: nil) } let rowItem = CPListImageRowItem(text: "Images", elements: elements, allowsMultipleLines: true) rowItem.listImageRowHandler = { item, elementIndex, completion in print("tapped element \(elementIndex)") completion() } let tab1Section = CPListSection(items: [rowItem]) let tab1Template = CPListTemplate(title: "CPListImageRowItemRowElement", sections: [tab1Section])
// Tab 2 : 12 CPListItem simples let tab2Items: [CPListItem] = (1...12).map { index in let item = CPListItem(text: "Item \(index)", detailText: "Detail \(index)") item.handler = { _, completion in print("handler Tab 2") completion() } return item } let tab2Section = CPListSection(items: tab2Items) let tab2Template = CPListTemplate(title: "CPListItem", sections: [tab2Section])
// CPTabBarTemplate avec les deux tabs let tabBar = CPTabBarTemplate(templates: [tab1Template, tab2Template]) interfaceController?.setRootTemplate(tabBar, animated: true) } } [/code] Вот короткое видео: [img]https://i.sstatic.net/pBQd1cUf.gif[/img]