[ios] Minimize tilt gesture delay
This commit is contained in:
@@ -46,6 +46,7 @@ Mapbox welcomes participation and contributions from everyone. Please read [CONT
|
||||
* The Improve This Map button in the attribution action sheet now leads to a feedback tool that matches MGLMapView’s rotation and pitch. `-[MGLAttributionInfo feedbackURLAtCenterCoordinate:zoomLevel:]` no longer respects the feedback URL specified in TileJSON. ([#9078](https://github.com/mapbox/mapbox-gl-native/pull/9078))
|
||||
* `-[MGLMapViewDelegate mapView:shouldChangeFromCamera:toCamera:]` can now block any panning caused by a pinch gesture. ([#9344](https://github.com/mapbox/mapbox-gl-native/pull/9344))
|
||||
* If the user taps on the map while it is flying to the user’s location, the user dot no longer appears in the incorrect location. ([#7916](https://github.com/mapbox/mapbox-gl-native/pull/7916))
|
||||
* Improved the responsiveness of the tilt gesture by reducing the initial recognition delay. ([#9386](https://github.com/mapbox/mapbox-gl-native/pull/9386))
|
||||
|
||||
### Other changes
|
||||
|
||||
|
||||
@@ -532,21 +532,21 @@ public:
|
||||
_singleTapGestureRecognizer.delegate = self;
|
||||
[self addGestureRecognizer:_singleTapGestureRecognizer];
|
||||
|
||||
_twoFingerTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTwoFingerTapGesture:)];
|
||||
_twoFingerTap.numberOfTouchesRequired = 2;
|
||||
[_twoFingerTap requireGestureRecognizerToFail:_pinch];
|
||||
[_twoFingerTap requireGestureRecognizerToFail:_rotate];
|
||||
[self addGestureRecognizer:_twoFingerTap];
|
||||
|
||||
_twoFingerDrag = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handleTwoFingerDragGesture:)];
|
||||
_twoFingerDrag.minimumNumberOfTouches = 2;
|
||||
_twoFingerDrag.maximumNumberOfTouches = 2;
|
||||
_twoFingerDrag.delegate = self;
|
||||
[_twoFingerDrag requireGestureRecognizerToFail:_twoFingerTap];
|
||||
[_twoFingerDrag requireGestureRecognizerToFail:_pan];
|
||||
[self addGestureRecognizer:_twoFingerDrag];
|
||||
_pitchEnabled = YES;
|
||||
|
||||
_twoFingerTap = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTwoFingerTapGesture:)];
|
||||
_twoFingerTap.numberOfTouchesRequired = 2;
|
||||
[_twoFingerTap requireGestureRecognizerToFail:_pinch];
|
||||
[_twoFingerTap requireGestureRecognizerToFail:_rotate];
|
||||
[_twoFingerTap requireGestureRecognizerToFail:_twoFingerDrag];
|
||||
[self addGestureRecognizer:_twoFingerTap];
|
||||
|
||||
_decelerationRate = MGLMapViewDecelerationRateNormal;
|
||||
|
||||
_quickZoom = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleQuickZoomGesture:)];
|
||||
@@ -1682,14 +1682,14 @@ public:
|
||||
if ( ! self.isPitchEnabled) return;
|
||||
|
||||
_mbglMap->cancelTransitions();
|
||||
MGLMapCamera *oldCamera = self.camera;
|
||||
|
||||
if (twoFingerDrag.state == UIGestureRecognizerStateBegan)
|
||||
{
|
||||
[self trackGestureEvent:MGLEventGesturePitchStart forRecognizer:twoFingerDrag];
|
||||
[self notifyGestureDidBegin];
|
||||
}
|
||||
else if (twoFingerDrag.state == UIGestureRecognizerStateBegan || twoFingerDrag.state == UIGestureRecognizerStateChanged)
|
||||
|
||||
if (twoFingerDrag.state == UIGestureRecognizerStateBegan || twoFingerDrag.state == UIGestureRecognizerStateChanged)
|
||||
{
|
||||
CGFloat gestureDistance = CGPoint([twoFingerDrag translationInView:twoFingerDrag.view]).y;
|
||||
CGFloat currentPitch = _mbglMap->getPitch();
|
||||
@@ -1699,6 +1699,7 @@ public:
|
||||
|
||||
CGPoint centerPoint = [self anchorPointForGesture:twoFingerDrag];
|
||||
|
||||
MGLMapCamera *oldCamera = self.camera;
|
||||
MGLMapCamera *toCamera = [self cameraByTiltingToPitch:pitchNew];
|
||||
|
||||
if (![self.delegate respondsToSelector:@selector(mapView:shouldChangeFromCamera:toCamera:)] ||
|
||||
|
||||
Reference in New Issue
Block a user