基于这篇文章:
UICollectionViewCell to UIButton Focus in tvOS,我添加了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
在我的例子中,我添加了一个由Jack Cox创建的有用的code,它显示了“隐形”'布局指南,一切似乎都很好,因为布局从collectionView
的顶部开始,到达按钮底部。
但它不起作用,如果用户位于collectionView
的左侧,则只能选择按钮,在此图像上,您只能从第1项和第6项开始按钮。
我在github here上做了一个小例子,我不知道自己做错了什么。
答案 0 :(得分:3)
我已经想通了,错误是用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,也许它可以帮助其他任何人。