मुझे यकीन है कि मैं पूरी तरह से समझते हैं कि क्या छू लेती है आप पता लगाने के लिए की जरूरत नहीं है। हालांकि, मुझे टचस्बेन की वजह से एक GMSMapView के शीर्ष पर उपयोगकर्ता पैन जेस्चर का पता लगाने में एक ही समस्या थी: केवल एक बार कहा जा रहा है।
मैं अपने खुद के "वर्तमान स्थान" बटन/बंद पर उनके स्थान पर उपयोगकर्ता टॉगल नक्शा केंद्रित देता है कि था। मुझे पता लगाना था कि जब उपयोगकर्ता पैनिंग के मानचित्र के स्वागत में बाधा डाले बिना मानचित्र को "पैनिंग" कर रहा था (मैं अभी भी मानचित्र को पैन करना चाहता था)।
// Creates Map centered at current location
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:theLocationManager.location.coordinate.latitude
Longitude:theLocationManager.location.coordinate.longitude
zoom:15];
theMapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
theMapView.myLocationEnabled = YES;
theMapView.delegate = self;
theMapView.camera = camera;
self.view = theMapView;
तो मैं एक पैन इशारा पहचानकर्ता बनाया है और theMapView
के इशारे recognizers संपत्ति के लिए यह कहा:
पहले, मैं नक्शा बनाया। मैं चयनकर्ता विधि के साथ self
करने का लक्ष्य रखा लगाना सुनिश्चित किया didPan:
// Watch for pan
UIPanGestureRecognizer *panRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget: self action:@selector(didPan:)];
theMapView.gestureRecognizers = @[panRecognizer];
अन्त में, एक ही मुख्य फ़ाइल में, मैं didPan:
पद्धति लागू प्रतिक्रिया करने के लिए जब उपयोगकर्ता पैन:
- (void) didPan:(UIPanGestureRecognizer*) gestureRecognizer
{
NSLog(@"DID PAN");
// React here to user's pan
}
स्रोत
2013-07-01 00:12:30
में वास्तव में बिल्कुल सही उत्तर में एक प्रतिनिधि विधि है। +1 –