двигатель tvOS focus на телевизоре с поворотом на 90 градусов? - PullRequest
0 голосов
/ 21 мая 2018

Наша компания использует телевизор в портретной ориентации, подключенный к Apple TV, на котором запущено наше собственное приложение, которое служит статусной доской.Это чисто внутреннее, взломанное приложение - не нужно беспокоиться об отправке в App Store.

Чтобы избежать визуализации объектов в боковом направлении, у нас есть контроллер представления базового класса, выполняющий CGAffineTransform на 90 градусов для представления (ивсе остальные контроллеры представления в проекте наследуются от этого базового класса):

class PortraitViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        view.transform = CGAffineTransform(rotationAngle: -1*CGFloat.pi/2)
    }
}

Это прекрасно работает для отображения изображений, текста, видео, пользовательских элементов управления пользовательского интерфейса и т. д. Однако механизм фокусировки не вращается вместе си поскольку он ожидает, что телевизор все еще отображается в горизонтальной ориентации, дистанционные жесты Apple TV заканчиваются на 90 градусов от того, что мы хотим.Вот пример:

enter image description here

Здесь мы бы хотели провести пальцем вправо / влево на пульте дистанционного управления, чтобы переместить фокус сегментированного элемента управления между двумя сегментами.Но поскольку Apple TV считает, что его показывают в альбомном режиме, она считает, что сегментированный элемент управления ориентирован вертикально, а перемещение вверх / вниз перемещает фокус сегментов.

Кто-нибудь знает, есть ли способ убедитьмеханизм фокусировки, чтобы не вращаться рядом с видом, или, альтернативно, другой способ отобразить вид в портретном режиме, не поворачивая вид?

...