簡體   English   中英

如何對CEMarkerGroup中的所有CEMarker執行操作

[英]How to perform an action on all CEMarker's in a CEMarkerGroup

我已經根據我的數據設置了CEMarkerGroup,並成功顯示了它們。 根據Citymaps的文檔 ,它們指示以下內容:

使用MARKER GROUP標記組允許您組織標記並同時在組中的所有標記上執行功能,還可以執行某些操作,而這些操作可能需要自己實施。

但是,似乎沒有任何公開的類或實例方法允許對特定組執行操作。 在下面,我已經設置了代碼

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 )值指定組。

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];
}

這些已經與我的地圖對象相關聯的組顯示正常,但是我找不到對這些單個組執行操作的任何方式(例如,隱藏組,顯示組等)。在那里有什么想法嗎?

謝謝!

我是Citymaps的開發人員。

CEMarkerGroup相當裸露,並且在大多數情況下只是一種組織對象所在位置的方法。 現在,標記組上唯一的批處理操作是從地圖中刪除該組中的所有標記。 我們還具有碰撞檢測功能,我在您的其他文章中也看到過。

如果要對組中的每個CEMarker執行某些操作,CEMarkerGroup確實提供對其標記的只讀訪問權限。

編輯:要回答您的評論,這是有關如何在標記組中切換標記的代碼示例。

    // 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;
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM