-1

我有这个问题:我正在开发一个带有地图、集群和位置标记的应用程序。单击标记或群集时,将打开一个标注: 1)在标记的标注中,我有一个文本视图,但我无法滚动它,因为如果我点击它,背景上的地图会移动。2) 集群的标注是一个包含多个项目的 CollectionView,但我无法滚动它(水平方向设置),因为如果我点击 collectionView,地图也会移动。

那么,正如标题所说,如何在显示标注时将点击集中在标注上?

谢谢!

4

1 回答 1

0

我猜你正在使用你自己的 CalloutView 类?

如果是这样,您可以实现委托以处理 CalloutView 上的点击或操作。

这是一个快速实现示例:

假设您在 CalloutView 中有一个最喜欢的按钮。

 protocol MyCalloutViewDelegate: class
    {
        func MyCalloutViewDidTouchFavorite(calloutView: MyCalloutView)
    }

    class MyCalloutView: CalloutView
    {
      ...

    func favoriteButtonDidTouch()
        {
            self.delegate?.MyCalloutViewDidTouchFavorite(self)
        }
    }

在您的 MapViewController 中,您可以这样实现:

// MARK: - MyCalloutViewDelegate

    func MyCalloutViewDidTouchFavorite(calloutView: MyCalloutView)
    {
        let viewController: FavoriteViewController = FavoriteViewController()
        self.navigationController?.pushViewController(viewController, animated: true)

    }

在此示例中,当用户点击 CalloutView 中的收藏按钮时,它将导航到 FavoriteViewController。

我希望这个示例将帮助您在 CalloutView 中处理 CollectionView 上的点击手势以执行特定操作。

于 2017-02-24T09:14:07.140 回答