mapkit και σχόλια

ψήφοι
0

Είμαι πολύ νέα για να το Xcode και το iPhone ανάπτυξη γι 'αυτό παρακαλώ να φέρει μαζί μου αν αυτή η ερώτηση είναι πολύ απλή. Αλλά έχω ένα χάρτη και έχω προσθέσει με επιτυχία εικόνες (όχι καρφίτσες) σε αυτό για σχολιασμούς μου. Και μπορώ να αλλάξω την εικόνα όταν ο χρήστης επιλέγει έναν από τους σχολιασμούς.

Δημιούργησα μια κλάση που κληρονομεί από MKAnnotationView με τις ακόλουθες μεθόδους: -

- (id)initWithAnnotation:

- (void)setAnnotation:

- (void)drawRect:

και είμαι με τη χρήση

- (void)touchesBegan

να γνωρίζουν πότε έχει επιλεγεί ένα σχόλιο. Και σε 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'

Ναι μπορώ να δω ότι η χώρα σκοπός μου δεν έχει μια εικόνα έτσι ώστε να είναι ο λόγος που δεν πάει καλά. Αλλά αν μπορώ να δημιουργήσω ένα ακίνητο εικόνα για τη θέση αντικειμένου μου - πώς θα αλλάξει την εικόνα σχόλια, τα οποία αυτό που προσπαθώ να κάνω.

Παρακαλείστε να ενημερώσετε το έχω πάει γύρω στους κύκλους σε αυτό το σημείο για 2 μέρες τώρα !!!!

Ευχαριστώ εκ των προτέρων Cheryl

Δημοσιεύθηκε 29/10/2009 στις 15:56
πηγή χρήστη
Σε άλλες γλώσσες...                            


1 απαντήσεις

ψήφοι
0

Cheryl,

Δεν ακολουθούν πλήρως αυτό που προσπαθούμε να κάνουμε, αλλά εδώ είναι μερικές σκέψεις:

Εδώ είναι τι θα έκανα για να επαναφέρετε την αρχική εικόνα:

Στην υποκατηγορία σας MKAnnotationView, προσθέστε δύο UIImage Properties,

firstImage και secondImage, που έχει συσταθεί για να διατηρήσει.

Όταν init την άποψη σχολιασμό, που έχει συσταθεί δύο εικόνες. (Στο σημείο όπου μπορείτε να εκχωρήσετε την εικόνα για να δείτε σχολιασμό σας, να το αποθηκεύσετε και να το νέο σας firstImage ιδιοκτησίας)

Στη συνέχεια, μπορείτε να πείτε

self.image = firstImage?

ή

self.image = secondImage.

Αυτό θα ανταλλάξουν την κατάλληλη εικόνα στη θέση του, διατηρώντας παράλληλα την άλλη εικόνα γύρω για να αποκατασταθεί.

Ο κωδικός σου:

NSArray *selectedAnnotations = map.selectedAnnotations; for(id annotationView in selectedAnnotations) { [map    
deselectAnnotation:[annotationView annotation] animated:NO]; }

Δεν είναι σωστό. Ζητεί από το χάρτη για μια σειρά από σχόλια, και στη συνέχεια να τους αντιμετωπίζει ως θέα σχολιασμό.

Ένας σχολιασμός είναι ένα μοντέλο δεδομένων αντικειμένου. Περιέχει τα δεδομένα που περιγράφουν ένα σχολιασμό.

Ένα αντικείμενο σχολιασμού VIEW είναι ένα προσωρινό αντικείμενο απεικόνισης που χρησιμοποιείται για να εμφανίσει έναν σχολιασμό πάνω στο χάρτη αν είναι ορατό. Δεν υπάρχουν πάντα τις απόψεις σχολιασμό για κάθε σχολιασμό στο χάρτη.

Απαντήθηκε 12/11/2009 στις 21:56
πηγή χρήστη

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more