首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何对CEMarkerGroup中的所有CEMarker执行操作

如何对CEMarkerGroup中的所有CEMarker执行操作
EN

Stack Overflow用户
提问于 2015-04-25 07:24:09
回答 1查看 34关注 0票数 1

我已经根据我的数据设置了CEMarkerGroup,并成功地显示了它们。根据Citymaps的文档,它们指出:

使用标记组标记组允许您同时组织标记并对组中的所有标记执行功能,还可以执行某些操作,否则需要自己实现。

但是,似乎没有任何公开的类或实例方法允许对特定组进行操作。下面,我设置了代码

代码语言:javascript
复制
CEMarkerGroup *grpCondo  = [self.mapView markerGroupWithName:@"grpCondo"];
CEMarkerGroup *grpRental = [self.mapView markerGroupWithName:@"grpRental"];
CEMarkerGroup *grpCoOp   = [self.mapView markerGroupWithName:@"grpCoOp"];
CEMarkerGroup *grpCondop = [self.mapView markerGroupWithName:@"grpCondop"];

稍后,当我循环遍历要添加的标记列表时,我将根据类别(cat)值指定组。

代码语言:javascript
复制
if ([cat isEqualToString:@"Condo"]) {
    [grpCondo  addMarker:marker];
}
if ([cat isEqualToString:@"Condop"]) {
    [grpCondop addMarker:marker];
}
if ([cat isEqualToString:@"Rental Unit"]) {
    [grpRental addMarker:marker];
}
if ([cat isEqualToString:@"Co-op"]) {
    [grpCoOp   addMarker:marker];
}

这些已经与我的地图对象相关联的组显示得很好,但是我找不到任何方法来处理这些单独的组(例如,隐藏一个组,显示一个组,等等)。外面有什么想法吗?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-04-27 00:41:30

我是Citymaps的开发人员。

CEMarkerGroup相当空旷,而且大多数情况下只是组织对象所在位置的一种方式。我们现在对标记组的唯一批处理操作是从地图中删除该组中的所有标记。我们也有碰撞检测功能,我看到你的另一篇文章。

如果您希望对组中的每个CEMarker执行某些操作,则CEMarkerGroup确实提供了对其标记的只读访问。

编辑:要回答您的评论,以下是如何在标记组中切换标记的代码示例。

代码语言:javascript
复制
    // This would be your toggled value
    BOOL showRentals = YES;
    for(CEMarker *rentalMarker in grpRental.markers) {
        // This property is not yet exposed. This would have the marker automatically fade in or out based on fadeTime.
        //rentalMarker.hidden = !showRentals;

        // You can use this as a proof of concept
        rentalMarker.alpha = showRentals ? 1.f : 0.f;
    }
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29862312

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档