我目前正在使用Apple TV应用程序。
我的视图是像这样从左到右建立的(另请参见屏幕截图)
小UICollectionView
UIImageview
UIView
UILabels
UIButton
当我在第二个UIButton
上时,只能将uicollectionviewCell
放在右侧。
当我在第一个和第三个单元格上时,我无法将焦点集中在UIButton
上。
有什么帮助吗?
编辑
我的ViewDidLoad
中有此代码
view.addLayoutGuide(focusGuide)
focusGuide.leftAnchor.constraintEqualToAnchor(collectionView.leftAnchor).active = true
focusGuide.topAnchor.constraintEqualToAnchor(collectionView.topAnchor).active = true
focusGuide.widthAnchor.constraintEqualToAnchor(view.widthAnchor).active = true
focusGuide.heightAnchor.constraintEqualToAnchor(view.heightAnchor).active = true
并添加此方法:
override func didUpdateFocusInContext(context: UIFocusUpdateContext, withAnimationCoordinator coordinator: UIFocusAnimationCoordinator) {
super.didUpdateFocusInContext(context, withAnimationCoordinator: coordinator)
guard let nextFocusedView = context.nextFocusedView else { return }
switch nextFocusedView {
case self.collectionView:
self.focusGuide.preferredFocusedView = self.orderButton
case self.orderButton:
self.focusGuide.preferredFocusedView = self.collectionView
default:
self.focusGuide.preferredFocusedView = nil
}
}
最佳答案
我只能猜测,因为我还没有在AppleTV上工作,但是据我了解您在做什么,您无法从收藏夹视图的第一个单元中集中按钮。我的猜测是您没有明确告诉系统应该从特定元素中获取焦点的内容。系统“看到”您要聚焦的按钮距离垂直轴上的第一个单元格太远。由于第二个单元格较近,因此系统允许其移动。
正如我所说,这只是我从Unity3D中学到的关于GUI元素之间自动链接的猜测,我可能完全错了,但这确实很像我对我说的那样。
关于ios - 当collectionview中的第一个单元格被聚焦时,无法聚焦uibutton,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34792238/