จะทำให้คำบรรยายปรากฏสำหรับภูมิภาค MKOverlay ได้อย่างไร

ฉันได้ใช้การจดจำท่าทางและ boundingRect สำหรับโอเวอร์เลย์ที่กำหนดเพื่อกำหนดว่าเมื่อใดที่ผู้ใช้แตะมัน อย่างไรก็ตาม ตอนนี้ฉันต้องการให้คำบรรยายปรากฏเหนือขอบเขตโอเวอร์เลย์ที่ผู้ใช้แตะ เช่นเดียวกับที่ทำกับคำอธิบายประกอบ ฉันต้องสร้างโอเวอร์เลย์เป็นคำอธิบายประกอบเพื่อที่จะบรรลุเป้าหมายนี้หรือไม่ ขอบคุณ.


person Stunner    schedule 03.02.2011    source แหล่งที่มา


คำตอบ (1)


ภาพซ้อนทับยังเป็นวัตถุคำอธิบายประกอบหากคุณต้องการ

จากคู่มือการเขียนโปรแกรมการรับรู้ตำแหน่ง : :

โปรโตคอล MKOverlay สอดคล้องกับโปรโตคอล MKAnnotation ด้วยเหตุนี้ ออบเจ็กต์โอเวอร์เลย์ทั้งหมดจึงเป็นออบเจ็กต์คำอธิบายประกอบ และอาจถือเป็นออบเจ็กต์เดียวหรือทั้งสองอย่างในโค้ดของคุณ หากคุณเลือกที่จะถือว่าออบเจ็กต์โอเวอร์เลย์เป็นทั้งสองอย่าง คุณมีหน้าที่รับผิดชอบในการจัดการออบเจ็กต์นั้นในสองแห่ง หากคุณต้องการแสดงทั้งมุมมองแบบซ้อนทับและมุมมองคำอธิบายประกอบ คุณต้องใช้ทั้งเมธอด mapView:viewForOverlay: และ mapView:viewForAnnotation: ในผู้รับมอบสิทธิ์แอปพลิเคชันของคุณ นอกจากนี้ยังหมายความว่าคุณต้องเพิ่มและลบวัตถุออกจากทั้งอาร์เรย์ซ้อนทับและคำอธิบายประกอบของแผนที่ของคุณ

person petert    schedule 03.02.2011
comment
ขอบคุณสำหรับคำแนะนำ แต่ฉันหลงทางมากว่าจะสร้างภาพซ้อนทับให้เป็นคำอธิบายประกอบได้อย่างไร คุณสามารถให้โค้ดตัวอย่างในพื้นที่นี้ได้หรือไม่? คลาสย่อยของ MKAnnotationView มักจะมี UIImage เป็นตัวแปรและในวิธีการ initWithAnnotation:reuseIdentifier: ไม่มีวิธีใดที่จะระบุความกว้างและความสูงของเฟรมแบบไดนามิกจากความกว้างและความสูงของรูปหลายเหลี่ยม (จากคำอธิบายประกอบที่ส่งผ่าน) มีอยู่หรือไม่ ขอบคุณ. - person Stunner; 04.02.2011
comment
โค้ดตัวอย่าง MapCallouts อาจช่วยได้ มันแสดง MKAnnotations พร้อมคำบรรยายที่กำหนดเอง - developer.apple.com/ ไลบรารี/ios/#samplecode/MapCallouts/ - person petert; 04.02.2011
comment
ไม่ทำงานจากฉัน ฉันถือว่า MKPolyLine เป็น MKAnnotation แต่ล้มเหลว หลังจากที่ฉันเพิ่ม Annotation: ไปที่ mapview แล้ว จะไม่เรียกการโทรกลับ - (MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id ‹MKAnnotation›)annotation - person user501836; 19.04.2012
comment
ผู้รับมอบสิทธิ์เป็นการอ้างอิงที่ถูกต้องเนื่องจาก mapView:viewForAnnotation เป็นวิธีการในโปรโตคอลผู้รับมอบสิทธิ์ (developer.apple.com/library/ios/#documentation/MapKit/Reference/) - person petert; 19.04.2012
comment
คุณช่วยอธิบายรายละเอียดคำตอบด้วยตัวอย่างที่เป็นรูปธรรมได้ไหม ฉันไม่สามารถแสดงคำบรรยายภาพที่ด้านบนของโอเวอร์เลย์ได้ - person michael-martinez; 29.12.2019