我理解焦点引擎将决定可以选择什么的概念。它也似乎在垂直或水平线性移动,并试图找到下一个最近的邻居,其视图与该垂直或水平线相交。
我尚未解决的问题是如何进行设置,以便在其中一个具有可滚动区域(如地图)的情况下,不会阻止平移以在可聚焦子视图之间切换。
我有两个集合视图,它们占据了屏幕的宽度,一个在另一个之上。我可以平移在这些之间切换就好了。这是覆盖他们共享的自定义 UICollectionView 类的代码
override public func canBecomeFocused() -> Bool {
return true
}
public override func shouldUpdateFocusInContext(context: UIFocusUpdateContext) -> Bool {
return true
}
public override func didUpdateFocusInContext(context: UIFocusUpdateContext, withAnimationCoordinator coordinator: UIFocusAnimationCoordinator) {
super.didUpdateFocusInContext(context, withAnimationCoordinator: coordinator)
}
在一个单独的视图控制器中,我在它上面有一个地图视图和一个集合视图。两者都占据了屏幕的宽度。我可以平移以从集合视图切换到地图视图,但无论我尝试平移/向上滑动的速度有多慢或多快,我都无法让地图视图失去焦点。
我确实尝试添加一些手势识别器并设置委托方法以尝试让我的 GR 战胜地图视图的滚动 GR,但无济于事。
其他人有类似的经历吗?我如何退出地图视图而无需添加另一个对话或其他东西来将上下文切换回集合视图?
先感谢您。