UIFocusGuide 不适用于 tvOS 中的 UICollectionView
UIFocusGuide doesn't work on UICollectionView in tvOS
基于此post:
UICollectionViewCell to UIButton Focus in tvOS,我添加了一个 UIFocusGuide
,因此当用户位于 collectionview
的右侧时,可以 select 左侧按钮上的按钮。
使用此代码:
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
在我的示例中,我添加了一个有用的 code,它由 Jack Cox 创建,显示了 'invisible' 布局指南,一切看起来都很好,因为布局从 collectionView
的顶部开始并在按钮的底部结束。
但它不起作用,如果用户位于 collectionView
的左侧,则按钮只能 selected,在此图像上,您只能从项目 1 转到按钮,项目 6.
我在github here上做了一个小例子,我不知道我做错了什么。
我已经弄明白了,错误是用 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 的更改,也许它对其他人有帮助。
基于此post:
UICollectionViewCell to UIButton Focus in tvOS,我添加了一个 UIFocusGuide
,因此当用户位于 collectionview
的右侧时,可以 select 左侧按钮上的按钮。
使用此代码:
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
在我的示例中,我添加了一个有用的 code,它由 Jack Cox 创建,显示了 'invisible' 布局指南,一切看起来都很好,因为布局从 collectionView
的顶部开始并在按钮的底部结束。
但它不起作用,如果用户位于 collectionView
的左侧,则按钮只能 selected,在此图像上,您只能从项目 1 转到按钮,项目 6.
我在github here上做了一个小例子,我不知道我做错了什么。
我已经弄明白了,错误是用 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 的更改,也许它对其他人有帮助。