UIFocusGuide не работает с UICollectionView в tvOS

Основываясь на этом сообщении: UICollectionViewCell в UIButton Focus в tvOS, я добавляю a UIFocusGuide, поэтому, когда пользователь находится справа от collectionview, он может выбрать кнопку слева.

Используя этот код:

focusGuide = UIFocusGuide();
focusGuide.preferredFocusedView = btClick
view.addLayoutGuide(focusGuide)
focusGuide.topAnchor.constraintEqualToAnchor(collectionView.topAnchor).active = true
focusGuide.bottomAnchor.constraintEqualToAnchor(btClick.bottomAnchor).active = true
focusGuide.leadingAnchor.constraintEqualToAnchor(collectionView.leadingAnchor).active = true
focusGuide.widthAnchor.constraintEqualToAnchor(collectionView.widthAnchor).active = true

В моем примере я добавил полезный код, созданный Джеком Коксом, который показывает "невидимое" направляющие макета, и все выглядит хорошо, потому что макет начинается в верхней части collectionView и заканчивается в нижней части кнопки.

Но это не работает, кнопку можно выбрать только в том случае, если пользователь находится слева от collectionView, на этом изображении вы можете перейти только к кнопке из пункта 1 и пункта 6.

введите здесь описание изображения

Я сделал небольшой пример на github здесь, я не знаю, что я делаю неправильно .


person garanda    schedule 19.07.2016    source источник


Ответы (1)


Я уже разобрался, ошибкой было создать фокус на весь размер collectionView теперь я создал направляющую фокуса чуть ниже collectionView и установил preferredFocusedView на кнопку.

Используя этот код:

focusGuide = UIFocusGuide();
focusGuide.preferredFocusedView = btClick
view.addLayoutGuide(focusGuide)

//Modified the size of the UIFocusGuide
focusGuide.topAnchor.constraintEqualToAnchor(btClick.topAnchor).active = true   
focusGuide.rightAnchor.constraintEqualToAnchor(collectionView.rightAnchor).active = true
    
focusGuide.widthAnchor.constraintEqualToAnchor(btClick.widthAnchor, multiplier: 8).active = true
focusGuide.heightAnchor.constraintEqualToAnchor(btClick.heightAnchor).active = true

Теперь руководство выглядит так: введите здесь описание изображения

Я только что внес изменения в github, возможно, это поможет кому-то еще.

person garanda    schedule 19.07.2016