2011-01-20 34 views
5

Có ai có bất kỳ ý tưởng tại sao hình ảnh sử dụng cho một MKPinAnnotationView nên được bù đắp nhẹ (lên và sang phải) mã tôi đang sử dụng là:MKPinAnnotationView bù đắp hình ảnh?

pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:pinView_ID]; 
pinView.image = [UIImage imageNamed: @"TEST_Small.png"]; 
// RedCircleImage = 40px x 40px 72dpi PNG 
// GreenDotImage = 2px x 2px 72dpi PNG 

alt text

Không có thay đổi mã chỉ là một thay đổi trong tên tập tin cho hình ảnh được sử dụng, một hình ảnh là "hai vòng màu đỏ có chấm đen ở giữa" cái kia là "chấm nhỏ màu xanh lá cây" Tôi đã thêm các đường kẻ màu xanh mỏng trong Photoshop để giúp hiển thị chấm màu xanh lá cây là.

Tôi đã chọn thuộc tính centerOffset và được đặt chính xác thành 0,0

Bất kỳ ý tưởng nào đều được hoan nghênh.

+2

Tôi không chắc chắn rằng điều này đang gây ra sự cố bạn đang thấy nhưng có lẽ bạn không nên cố gắng tùy chỉnh MKPinAnnotationView. Bạn nên sử dụng MKAnnotationView. MKPinAnnotationView là một lớp triển khai cụ thể và do đó có thể có logic riêng của nó liên quan đến hoạt ảnh pin có thể dẫn đến việc bù đắp bạn đang thấy – Dolbz

+0

Xin chào, đó là một điểm tốt, tôi sẽ có một cái nhìn. – fuzzygoat

+0

Đó thực sự là giải pháp, đánh giá cao Dolbz, nếu bạn muốn đại diện bạn có thể đăng bình luận của bạn như một câu trả lời, nếu không tôi sẽ đánh dấu câu trả lời của omz. – fuzzygoat

Trả lời

14

Như Dolbz đã chỉ ra, bạn nên sử dụng MKAnnotationView thay vì MKPinAnnotationView. Khi bạn đặt hình ảnh, bạn cũng có thể đặt centerOffset phù hợp với hình ảnh của mình. Mặc định centerOffset sẽ hoạt động cho hình ảnh của bạn, nhưng nếu bạn sẽ hiển thị ghim, cờ, v.v. bạn sẽ đặt nó theo cách khác.

+0

Được đánh giá cao. – fuzzygoat

+1

Tôi đã dành vài giờ cho đến khi tôi đọc bài đăng của bạn và tôi nhận ra rằng tôi đã sử dụng MKPinAnnotationView thay vì MKAnnotationView. Rõ ràng centerOffset không hoạt động trong MKPinAnnotationView. Cảm ơn nhiều vì sự giúp đỡ. – Ricardo

Các vấn đề liên quan