Я очень новичок в разработке XCode и iPhone, поэтому, пожалуйста, потерпите меня, если этот вопрос слишком прост. Но у меня есть карта, и я успешно добавил изображения (не булавки) к ней для моих аннотаций. И я могу изменить изображение, когда пользователь выбирает одну из аннотаций.
Я создал класс, который наследуется от MKAnnotationView с помощью следующих методов: -
- (id)initWithAnnotation:
- (void)setAnnotation:
- (void)drawRect:
и я использую
- (void)touchesBegan
чтобы узнать, когда была выбрана аннотация. И в прикосновениях начал делать: -
UIImage *i = [UIImage imageNamed:@"A.png"];
self.image = i;
чтобы изменить изображение. Но что меня действительно озадачило, так это как я могу изменить изображение обратно на его исходное изображение, когда пользователи выбирают следующую аннотацию. Я пытался: -
NSArray *selectedAnnotations = map.selectedAnnotations;
for(id annotationView in selectedAnnotations) {
[map deselectAnnotation:[annotationView annotation] animated:NO];
}
но это ошибки
и я попробовал
for (MKAnnotationView *ann in map.selectedAnnotations){
if ([ann isMemberOfClass:[Place class]])
{
place = (Place *)ann;
NSLog(@"second = %@"@" %f"@" %f", place.title, place.longitude, place.latitude);
if (currentPlaceID == place.placeID) {
//UIImage *i = [UIImage imageNamed:@"A.png"];
//ann.image = i;
}
else {
UIImage *i = [UIImage imageNamed:@"pin.png"];
ann.image = i;
}
}
}
приведенный выше код работает нормально, пока я не доберусь до ann.image = i; тогда это ошибки. Я получаю следующие ошибки: -
*** -[Place setImage:]: unrecognized selector sent to instance 0x4514370
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[Place setImage:]: unrecognized selector sent to instance 0x4514370'
Да, я вижу, что у моего объекта на месте нет изображения, поэтому оно идет не так, как надо. Но если я создаю свойство изображения на моем объекте place - как это изменит изображение аннотации, что я и пытаюсь сделать.
Посоветуйте, пожалуйста, так как я ходил кругами по этому уже 2 дня !!!!
Заранее спасибо
Шерил