โค้ดด้านล่างเป็นวิธีที่ฉันใช้เพื่อซูมเข้าไปในตำแหน่งของผู้ใช้ แต่จากนั้นให้หยุดไม่ให้ซูมอีกครั้งอย่างต่อเนื่องเมื่อผู้ใช้ย้ายแผนที่ ปัญหาของวิธีนี้คือเมื่อมันขออนุญาตข้อมูลตำแหน่งผู้ใช้ในแอป และฉันเลือกใช่ มันไม่ทำอะไรเลย ต้องออกจากเพจแล้วกลับมาก่อนจะซูมได้ถูกต้อง
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context{
if ([self.mapView showsUserLocation])
{
MKCoordinateRegion region;
region.center = self.mapView.userLocation.coordinate;
MKCoordinateSpan span;
span.latitudeDelta = .50; // Change these values to change the zoom
span.longitudeDelta = .50;
region.span = span;
[self.mapView setRegion:region animated:YES];
self.mapView.showsUserLocation = NO;}
}
วิธีการข้างต้นควรตรวจสอบการเปลี่ยนแปลงตำแหน่งของผู้ใช้ จากนั้นจึงตั้งค่าตำแหน่งเมื่อพบ จากนั้น ฉันตั้งเงื่อนไขในคำสั่ง if เพื่อหยุด -- ไม่เช่นนั้น มันจะย้ายกลับไปยังตำแหน่งของผู้ใช้เมื่อคุณเลื่อนแผนที่ไปรอบๆ