Удалить ярлыки с помощью WhirlyGlobe - PullRequest
0 голосов
/ 12 октября 2011

Я использую (действительно круто) WhirlyGlobe (https://code.google.com/p/whirlyglobe/) 3D-дисплей глобуса для iPhone в новом приложении. Я могу добавлять ярлыки в определенных местах, используя код, показанный ниже. Я хочу иметь возможность вернуться и удалить ярлык, который я добавил ранее. В документации (http://whirlyglobedocs.s3 -website-us-east-1.amazonaws.com / html / interface_label_layer.html # ac17e1ec72e70eec416cb2cac833f46fa) показан метод removeLabel, но я не могу заставить его работать. Я могу добавить, но не удаляю ярлыки. Я пытался пройтись по всем подпредставлениям, но не могу найти эти экземпляры SimpleLabel. Может кто-нибудь помочь мне разобраться, как удалить ярлык? Мне не повезло, что я нашел много примеров. Спасибо!

// Current position
float lat = [[values objectAtIndex:8] floatValue];
flaot lon = [[values objectAtIndex:9] floatValue];

// Create a SingleLabel at this Lat / Lon pair location                
SingleLabel *interimLabel = [[[SingleLabel alloc] init] autorelease];
interimLabel.text = [NSString stringWithFormat:@"PRN %d",[[values objectAtIndex:1] intValue]];
[interimLabel setLoc:GeoCoord::CoordFromDegrees(lon, lat)];
[locationArray addObject:interimLabel];
[allLabels addObject:interimLabel];

1 Ответ

0 голосов
/ 12 октября 2011

Когда вы добавите одну метку или группу меток к слою метки, вы получите SimpleIdentity. Держите это где-нибудь. Затем, когда вы хотите удалить метку (или группу меток) из слоя меток, вы возвращаетесь в этот SimpleIdentity.

Что происходит, так это WhirlyGlobe группирует данные для рисования как mofo. Ваши объекты SingleLabel больше не существуют, как только слой Label Layer раздробил их на как можно меньше Drawables, и с ним можно сойти. Поэтому, чтобы ссылаться на эти ярлыки, вы должны хранить уникальный идентификатор.

Теперь, если вы хотите удалить эти ярлыки отдельно или по отдельности изменить их внешний вид, то вам нужно добавить их один за другим. Один ярлык для одного SimpleIdentity. Иначе нет возможности ссылаться на них по отдельности.

Для скорости я рекомендую сгруппировать их как можно больше. Если это пока слишком сложно, добавьте их один за другим, а затем запишите, чтобы вернуться. Поэтому, когда вы говорите «Почему это не работает так быстро, как мне хотелось бы», вы можете сказать «Ооооо, верно»

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...