正如标题所描述的那样,我不知道触发链接的函数或方法。
我已经将所有注释添加到地图中。
希望有人可以给出具体的示例代码,谢谢。
答案 0 :(得分:0)
一些想法:
您的代码显示为:
func scrollViewDidScroll(_ scrollView: UIScrollView) {
if scrollView is UICollectionView {
let collectionViewCenter = CGPoint(x: myMap.bounds.size.width / 2 + myMap.frame.minX, y: myMap.bounds.size.height / 2 + myMap.frame.minY)
let centredCellIndexPath = cafeCollectionView.indexPathForItem(at: collectionViewCenter)
guard let path = centredCellIndexPath else {
// There is no cell in the center of collection view (you might want to think what you want to do in this case)
return
}
// select annotation here, if needed
}
}
您要将collectionViewCenter
设置为地图的中心,但如果要查找{{1 }},您应该使用集合视图centeredCellIndexPath
的中心,而不是地图的中心。
如果您的地图(如AirBnb应用程序)的大小不同于集合视图的大小,则您可能要为集合视图{{1}之外的bounds
调用indexPathForItem(at:)
},在这种情况下不会获得任何成功。
因此,例如,如果您想要集合视图的中心,可以将CGPoint
分配替换为以下内容:
bounds
或者,如果您想让该单元格位于左侧,请使用一些固定的collectionViewCenter
值代替let collectionViewCenter = CGPoint(x: cafeCollectionView.bounds.midX,
y: cafeCollectionView.bounds.midY)
。
您选择注释的代码似乎也不正确。您正在做
x
这实际上表示“如果所选注解是我们想要的注解,请选择它。”我想您想要相反的意思,即: