问题标签 [calloutview]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
8773 浏览

ios8 - 自定义 iOS8 标注气泡 (Swift)

我想自定义单击 MKAnnotationView 时可视化的 iOS8 MapView 标注气泡。默认气泡有点限制(只有标题、副标题和 2 个附件视图),所以我正在努力寻找替代解决方案。这里有两种可能的方法和我面临的相关问题:

问题 1) 创建自定义标注气泡

挖掘Apple文档我发现了这个:

当您使用自定义视图而不是标准标注时,您需要做额外的工作以确保您的标注在用户与之交互时正确显示和隐藏。以下步骤概述了创建包含按钮的自定义标注的过程:

设计一个代表自定义标注的 NSView 或 UIView 子类。子类很可能需要实现 drawRect: 方法来绘制您的自定义内容。创建一个视图控制器,用于初始化标注视图并执行与按钮相关的操作。在注解视图中,实现 hitTest: 以响应在注解视图范围之外但在标注视图范围内的命中,如清单 6-7 所示。在注释视图中,实现 setSelected:animated: 以在用户单击或点击时将标注视图添加为注释视图的子视图。如果用户选择时标注视图已经可见,则 setSelected: 方法应从注释视图中删除标注子视图(参见清单 6-8)。在注解视图的 initWithAnnotation: 方法中,将 canShowCallout 属性设置为 NO 以防止地图在用户选择注释时显示标准标注。清单 6-7 显示了一个实现 hitTest 的示例:处理标注视图中可能超出注释视图边界的命中。

清单 6-8 显示了一个实现 setSelected:animated: 的示例,以在用户选择注释视图时为自定义标注视图的到达和解除设置动画。

现在,当我尝试将此 Objective-C 代码转换为 Swift 时,我找不到此属性:

如何访问标注气泡视图?

问题 2) 修改默认标注气泡

如前所述,显示的默认标注有标题、副标题和 2 个附件视图。我注意到我无法改变字符串的字体样式或气泡的颜色。此外,如果我的标题超过 24 个字符,我的辅助视图定位就会混乱。我怎样才能避免这个问题?

0 投票
0 回答
446 浏览

swift - 自定义标注捕捉触摸事件

我正在使用SMCalloutView为我的 mapView 创建自定义标注。我遇到的问题是当标注视图可见并且用户按下标注时,如果另一个注释在标注视图下,它将关闭当前选定的注释并选择可见标注视图下的注释。

我想也许我可以创建一个 UIView 子类来捕捉所有的触摸事件。所以我创建了一个 UIView 子类,如果我将它直接添加到 mapView 中,所有函数都会正确触发。但是当我将它用于弹出窗口时,它似乎根本不起作用。

为了完成这里是我调用自定义 CalloutView 的地方。

我需要做什么。如果用户按下标注视图,它不会关闭标注,或将触摸事件传递给 mapView/Annotation 下面。相反,它需要调用一个函数。任何提示都会很棒。

0 投票
2 回答
134 浏览

ios - iOS:按钮背景图像在注释标注视图中没有改变

我有一个带有许多表示商店的注释的 MKMapView。当用户点击注释时,我会呈现一个自定义注释视图。此视图包含一个收藏按钮,用于将商店添加到用户的收藏夹中。

如果用户按下此按钮,它会将其backgroundImage属性更改为另一个图像,以指示其作为收藏夹的状态。

正在发生的问题是当用户点击它时图像不会改变。它正在调用该方法并将商店添加到它的收藏夹中,但它没有更改图像。如果用户关闭标注,然后再次点击注释以查看标注,则按钮将呈现正确的背景图像。

此问题仅在 iOS7 设备上发生,但在 iOS7 模拟器和 iOS8 模拟器/设备上可以完美运行。

任何帮助都会很棒,谢谢。

0 投票
1 回答
269 浏览

ios - 是否可以为 SKCalloutView 使用自定义视图?

是否可以制作一个带有标签和按钮等元素的自定义 UIView,并将其用作 CalloutView?

到目前为止,我通过文档阅读的内容并不意味着它是可能的。

可以更改左右按钮,以及为箭头添加自定义 UIImageView,但无法确定是否真的可以自定义整个视图。

0 投票
1 回答
104 浏览

ios - 是否可以一次显示 3 个不同注释的标注视图?

我需要为我目前在地图上拥有的所有 3 个注释显示 calloutView,并让用户根据写在这些标注上的信息来决定他将与哪个进行交互。

我试着打电话:

但它会导致仅显示最后一个注释的 CalloutView。

有什么解决办法吗?

0 投票
1 回答
875 浏览

objective-c - calloutAccessoryControlTapped not being called

I am trying to use the CalloutAccessory feature, but the delegate method never gets called. I have the delegate properly set up as other mapview delegate methods in my code are firing fine, but for some reason for this one, the delegate method never gets called when the button is tapped.

I have tried extending RouteViewAnnotation from both the MKAnnotationView and the MKPinAnnotationView, and it makes no difference.. the delegate method never gets called.

What am I missing? Do I need something else that isn't here for this to work? The RouteAnnotationView just overrides the drawrect, and has no other code in it.

Relevant Code:

In ViewForAnnotation

In calloutAccssoryControlTapped

0 投票
0 回答
500 浏览

ios - 自定义标注未收到触摸操作

下面是自定义标注类

在此处输入图像描述

每件事都按应有的方式工作,但我无法接收红色按钮的触摸动作。任何建议都将是可观的。

0 投票
0 回答
331 浏览

ios - 自定义 MapKit 注释不起作用

我正在尝试创建自定义标注,但由于某种原因,默认点图像不会更改。

我正在使用 Parse 获取点的数据。我创建了一个继承自 MKAnnotationView 的自定义类(customAnnotationView),并且我还覆盖了 mapView 函数。

视图控制器如下:

customAnnotationView:_

任何帮助将不胜感激! 谢谢 !

0 投票
2 回答
1609 浏览

ios - iOS - 无法获取标注中按钮的 DetailDisclosure

我在 iOS 9 中使用 Swift。无论我选择什么按钮类型,除了 ContactAdd,只会呈现信息图标。我正在尝试在地图视图中获取标注右侧的 DetailDisclosure 图标。这是代码:

0 投票
0 回答
1160 浏览

ios - 如何快速添加彩色边框气泡标注?

我为标注添加了一个右键,但现在我想为整个气泡/标注添加一个彩色边框。假设我想要带有彩色边框的整个气泡。我想实现一些东西,view?.detailCalloutAccessoryView?.layer.borderWidth = 5.0 view?.detailCalloutAccessoryView?.layer.borderColor = UIColor(red:51/255.0, green:153/255.0, blue:255/255.0, alpha: 1.0).CGColor 但它不起作用

与此类似的东西(我知道他们在这里只添加了红色视图)但里面是白色的,但有彩色边框

在此处输入图像描述