diff options
author | Julian Rex <julian.rex@mapbox.com> | 2018-02-12 14:42:56 -0500 |
---|---|---|
committer | Julian Rex <julian.rex@mapbox.com> | 2018-02-12 14:42:56 -0500 |
commit | 14d5845eae9d39d0ceba05f00ab8147065605bd0 (patch) | |
tree | dcbb962ab2a3b1686776cc936b1876989013cb8c | |
parent | 0faad452a96ce6644cfc4ac07ec0e0c76e136935 (diff) | |
download | qtlocation-mapboxgl-14d5845eae9d39d0ceba05f00ab8147065605bd0.tar.gz |
[ios] Update constant names and associated documentation.
-rw-r--r-- | platform/ios/CHANGELOG.md | 2 | ||||
-rw-r--r-- | platform/ios/ios.xcodeproj/project.pbxproj | 12 | ||||
-rw-r--r-- | platform/ios/src/MGLCameraChange.h | 35 | ||||
-rw-r--r-- | platform/ios/src/MGLCameraChangeReason.h | 61 | ||||
-rw-r--r-- | platform/ios/src/MGLMapView.mm | 46 | ||||
-rw-r--r-- | platform/ios/src/MGLMapViewDelegate.h | 6 |
6 files changed, 96 insertions, 66 deletions
diff --git a/platform/ios/CHANGELOG.md b/platform/ios/CHANGELOG.md index 49476f5917..3aa9ea1b85 100644 --- a/platform/ios/CHANGELOG.md +++ b/platform/ios/CHANGELOG.md @@ -5,7 +5,7 @@ Mapbox welcomes participation and contributions from everyone. Please read [CONT ## 3.7.4 * Added the `MGLTileSourceOptionTileCoordinateBounds` option to create an `MGLTileSource` that only supplies tiles within a specific geographic bounding box. ([#11141](https://github.com/mapbox/mapbox-gl-native/pull/11141)) -* Provide optional delegate methods that provide a reason for a camera change. These are called in preference over the existing methods that do not have the parameter. ([#11151](https://github.com/mapbox/mapbox-gl-native/pull/11151)) +* Added optional delegate methods that provide a reason for a camera change. These are called in preference over the existing methods that do not have the parameter. ([#11151](https://github.com/mapbox/mapbox-gl-native/pull/11151)) ## 3.7.3 - January 10, 2018 diff --git a/platform/ios/ios.xcodeproj/project.pbxproj b/platform/ios/ios.xcodeproj/project.pbxproj index 202872d01a..bbd4067534 100644 --- a/platform/ios/ios.xcodeproj/project.pbxproj +++ b/platform/ios/ios.xcodeproj/project.pbxproj @@ -251,8 +251,8 @@ AC518E00201BB55A00EBC820 /* MGLTelemetryConfig.h in Headers */ = {isa = PBXBuildFile; fileRef = AC518DFD201BB55A00EBC820 /* MGLTelemetryConfig.h */; }; AC518E03201BB56000EBC820 /* MGLTelemetryConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = AC518DFE201BB55A00EBC820 /* MGLTelemetryConfig.m */; }; AC518E04201BB56100EBC820 /* MGLTelemetryConfig.m in Sources */ = {isa = PBXBuildFile; fileRef = AC518DFE201BB55A00EBC820 /* MGLTelemetryConfig.m */; }; - CA55CD41202C16AA00CE7095 /* MGLCameraChange.h in Headers */ = {isa = PBXBuildFile; fileRef = CA55CD3E202C16AA00CE7095 /* MGLCameraChange.h */; settings = {ATTRIBUTES = (Public, ); }; }; - CA55CD42202C16AA00CE7095 /* MGLCameraChange.h in Headers */ = {isa = PBXBuildFile; fileRef = CA55CD3E202C16AA00CE7095 /* MGLCameraChange.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA55CD41202C16AA00CE7095 /* MGLCameraChangeReason.h in Headers */ = {isa = PBXBuildFile; fileRef = CA55CD3E202C16AA00CE7095 /* MGLCameraChangeReason.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA55CD42202C16AA00CE7095 /* MGLCameraChangeReason.h in Headers */ = {isa = PBXBuildFile; fileRef = CA55CD3E202C16AA00CE7095 /* MGLCameraChangeReason.h */; settings = {ATTRIBUTES = (Public, ); }; }; DA00FC8E1D5EEB0D009AABC8 /* MGLAttributionInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = DA00FC8C1D5EEB0D009AABC8 /* MGLAttributionInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; DA00FC8F1D5EEB0D009AABC8 /* MGLAttributionInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = DA00FC8C1D5EEB0D009AABC8 /* MGLAttributionInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; DA00FC901D5EEB0D009AABC8 /* MGLAttributionInfo.mm in Sources */ = {isa = PBXBuildFile; fileRef = DA00FC8D1D5EEB0D009AABC8 /* MGLAttributionInfo.mm */; }; @@ -758,7 +758,7 @@ 96F3F73B1F5711F1003E2D2C /* MGLUserLocationHeadingIndicator.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MGLUserLocationHeadingIndicator.h; sourceTree = "<group>"; }; AC518DFD201BB55A00EBC820 /* MGLTelemetryConfig.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = MGLTelemetryConfig.h; sourceTree = "<group>"; }; AC518DFE201BB55A00EBC820 /* MGLTelemetryConfig.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = MGLTelemetryConfig.m; sourceTree = "<group>"; }; - CA55CD3E202C16AA00CE7095 /* MGLCameraChange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGLCameraChange.h; sourceTree = "<group>"; }; + CA55CD3E202C16AA00CE7095 /* MGLCameraChangeReason.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGLCameraChangeReason.h; sourceTree = "<group>"; }; DA00FC8C1D5EEB0D009AABC8 /* MGLAttributionInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MGLAttributionInfo.h; sourceTree = "<group>"; }; DA00FC8D1D5EEB0D009AABC8 /* MGLAttributionInfo.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = MGLAttributionInfo.mm; sourceTree = "<group>"; }; DA0CD58F1CF56F6A00A5F5A5 /* MGLFeatureTests.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = MGLFeatureTests.mm; path = ../../darwin/test/MGLFeatureTests.mm; sourceTree = "<group>"; }; @@ -1458,7 +1458,7 @@ DA8848881CBB036000AB86E3 /* SMCalloutView */, DAD165851CF4D08B001FF4B9 /* Telemetry */, 355ADFF91E9281C300F3939D /* Views */, - CA55CD3E202C16AA00CE7095 /* MGLCameraChange.h */, + CA55CD3E202C16AA00CE7095 /* MGLCameraChangeReason.h */, DA704CC01F65A475004B3F28 /* MGLMapAccessibilityElement.h */, DA704CC11F65A475004B3F28 /* MGLMapAccessibilityElement.mm */, DA17BE2F1CC4BAC300402C41 /* MGLMapView_Private.h */, @@ -1768,7 +1768,7 @@ 350098DC1D484E60004B2AF0 /* NSValue+MGLStyleAttributeAdditions.h in Headers */, DA8848231CBAFA6200AB86E3 /* MGLOfflineStorage_Private.h in Headers */, 404326891D5B9B27007111BD /* MGLAnnotationContainerView_Private.h in Headers */, - CA55CD41202C16AA00CE7095 /* MGLCameraChange.h in Headers */, + CA55CD41202C16AA00CE7095 /* MGLCameraChangeReason.h in Headers */, 1FB7DAAF1F2A4DBD00410606 /* MGLVectorSource+MGLAdditions.h in Headers */, DA88483B1CBAFB8500AB86E3 /* MGLCalloutView.h in Headers */, 35E0CFE61D3E501500188327 /* MGLStyle_Private.h in Headers */, @@ -1901,7 +1901,7 @@ 3510FFF11D6D9D8C00F413B2 /* NSExpression+MGLAdditions.h in Headers */, 35D3A1E71E9BE7EC002B38EE /* MGLScaleBar.h in Headers */, 35E0CFE71D3E501500188327 /* MGLStyle_Private.h in Headers */, - CA55CD42202C16AA00CE7095 /* MGLCameraChange.h in Headers */, + CA55CD42202C16AA00CE7095 /* MGLCameraChangeReason.h in Headers */, DABFB86D1CBE9A0F00D62B32 /* MGLAnnotationImage.h in Headers */, DABFB8721CBE9A0F00D62B32 /* MGLUserLocation.h in Headers */, 927FBD001F4DB05500F8BF1F /* MGLMapSnapshotter.h in Headers */, diff --git a/platform/ios/src/MGLCameraChange.h b/platform/ios/src/MGLCameraChange.h deleted file mode 100644 index c2f7728f2c..0000000000 --- a/platform/ios/src/MGLCameraChange.h +++ /dev/null @@ -1,35 +0,0 @@ -#import "MGLFoundation.h" - -typedef NS_OPTIONS(NSUInteger, MGLCameraChangeReason) -{ - /// No reason for the camera move is specified. - MGLCameraChangeReasonNone = 0, - - /// Set when a public API that moves the camera is called. This may be set for some gestures - MGLCameraChangeReasonProgrammatic = 1 << 0, - - /// User tapped the compass to reset to North - MGLCameraChangeReasonResetNorth = 1 << 1,// Tap on compass - - /// User panned the map. - MGLCameraChangeReasonGesturePan = 1 << 2, - - /// User pinched to zoom in/out - MGLCameraChangeReasonGesturePinch = 1 << 3, - - // User rotated the map - MGLCameraChangeReasonGestureRotate = 1 << 4, - - /// User zoomed the map in - MGLCameraChangeReasonGestureZoomIn = 1 << 5,// One finger double tap - - /// User zoomed the map out - MGLCameraChangeReasonGestureZoomOut = 1 << 6,// Two finger single tap - - /// User long pressed on the map for a quick zoom - MGLCameraChangeReasonGestureQuickZoom = 1 << 7,// Long press - - // User panned with two fingers to tilt the map - MGLCameraChangeReasonGesturePitch = 1 << 8// Two finger drag -}; - diff --git a/platform/ios/src/MGLCameraChangeReason.h b/platform/ios/src/MGLCameraChangeReason.h new file mode 100644 index 0000000000..6c6b3636ba --- /dev/null +++ b/platform/ios/src/MGLCameraChangeReason.h @@ -0,0 +1,61 @@ +#import "MGLFoundation.h" + +/** + :nodoc: + Bitmask values that describe why a camera move occurred. + + Values of this type are passed to the `MGLMapView`'s delegate in the following methods: + + - `-mapView:shouldChangeFromCamera:toCamera:reason:` + - `-mapView:regionWillChangeWithReason:animated:` + - `-mapView:regionIsChangingWithReason:` + - `-mapView:regionDidChangeWithReason:animated:` + + It's important to note that it's almost impossible to perform a rotate without zooming (in or out), + so if you'll often find `MGLCameraChangeReasonGesturePinch` set alongside `MGLCameraChangeReasonGestureRotate`. + + Since there are several reasons why a zoom or rotation has occurred, it is worth considering + creating a combined constant, for example: + + ``` + static const MGLCameraChangeReason anyZoom = MGLCameraChangeReasonGesturePinch | + MGLCameraChangeReasonGestureZoomIn | + MGLCameraChangeReasonGestureZoomOut | + MGLCameraChangeReasonGestureOneFingerZoom; + + static const MGLCameraChangeReason anyRotation = MGLCameraChangeReasonResetNorth | MGLCameraChangeReasonGestureRotate; + ``` + */ +typedef NS_OPTIONS(NSUInteger, MGLCameraChangeReason) +{ + /// :nodoc: The reason for the camera change has not be specified. + MGLCameraChangeReasonNone = 0, + + /// :nodoc: Set when a public API that moves the camera is called. This may be set for some gestures, + /// for example MGLCameraChangeReasonResetNorth. + MGLCameraChangeReasonProgrammatic = 1 << 0, + + /// :nodoc: The user tapped the compass to reset the map orientation so North is up. + MGLCameraChangeReasonResetNorth = 1 << 1, + + /// :nodoc: The user panned the map. + MGLCameraChangeReasonGesturePan = 1 << 2, + + /// :nodoc: The user pinched to zoom in/out. + MGLCameraChangeReasonGesturePinch = 1 << 3, + + // :nodoc: The user rotated the map. + MGLCameraChangeReasonGestureRotate = 1 << 4, + + /// :nodoc: The user zoomed the map in (one finger double tap). + MGLCameraChangeReasonGestureZoomIn = 1 << 5, + + /// :nodoc: The user zoomed the map out (two finger single tap). + MGLCameraChangeReasonGestureZoomOut = 1 << 6, + + /// :nodoc: The user long pressed on the map for a quick zoom (single tap, then long press and drag up/down). + MGLCameraChangeReasonGestureOneFingerZoom = 1 << 7, + + // :nodoc: The user panned with two fingers to tilt the map (two finger drag). + MGLCameraChangeReasonGestureTilt = 1 << 8 +}; diff --git a/platform/ios/src/MGLMapView.mm b/platform/ios/src/MGLMapView.mm index d2496d8627..f2141c3840 100644 --- a/platform/ios/src/MGLMapView.mm +++ b/platform/ios/src/MGLMapView.mm @@ -209,7 +209,7 @@ public: @property (nonatomic) UILongPressGestureRecognizer *quickZoom; @property (nonatomic) UIPanGestureRecognizer *twoFingerDrag; -@property (nonatomic) MGLCameraChangeReason cameraChangeReason; +@property (nonatomic) MGLCameraChangeReason cameraChangeReasonBitmask; /// Mapping from reusable identifiers to annotation images. @property (nonatomic) NS_MUTABLE_DICTIONARY_OF(NSString *, MGLAnnotationImage *) *annotationImagesByIdentifier; @@ -555,7 +555,7 @@ public: options.padding = padding; options.zoom = 0; - _cameraChangeReason = MGLCameraChangeReasonNone; + _cameraChangeReasonBitmask = MGLCameraChangeReasonNone; _mbglMap->jumpTo(options); _pendingLatitude = NAN; @@ -1243,7 +1243,7 @@ public: - (void)handleCompassTapGesture:(__unused id)sender { - self.cameraChangeReason |= MGLCameraChangeReasonResetNorth; + self.cameraChangeReasonBitmask |= MGLCameraChangeReasonResetNorth; [self resetNorthAnimated:YES]; @@ -1296,7 +1296,7 @@ public: // Check delegates first if ([self.delegate respondsToSelector:@selector(mapView:shouldChangeFromCamera:toCamera:reason:)]) { - return [self.delegate mapView:self shouldChangeFromCamera:oldCamera toCamera:newCamera reason:self.cameraChangeReason]; + return [self.delegate mapView:self shouldChangeFromCamera:oldCamera toCamera:newCamera reason:self.cameraChangeReasonBitmask]; } else if ([self.delegate respondsToSelector:@selector(mapView:shouldChangeFromCamera:toCamera:)]) { @@ -1316,7 +1316,7 @@ public: MGLMapCamera *oldCamera = self.camera; - self.cameraChangeReason |= MGLCameraChangeReasonGesturePan; + self.cameraChangeReasonBitmask |= MGLCameraChangeReasonGesturePan; if (pan.state == UIGestureRecognizerStateBegan) { @@ -1386,7 +1386,7 @@ public: CGPoint centerPoint = [self anchorPointForGesture:pinch]; MGLMapCamera *oldCamera = self.camera; - self.cameraChangeReason |= MGLCameraChangeReasonGesturePinch; + self.cameraChangeReasonBitmask |= MGLCameraChangeReasonGesturePinch; if (pinch.state == UIGestureRecognizerStateBegan) { @@ -1485,7 +1485,7 @@ public: CGPoint centerPoint = [self anchorPointForGesture:rotate]; MGLMapCamera *oldCamera = self.camera; - self.cameraChangeReason |= MGLCameraChangeReasonGestureRotate; + self.cameraChangeReasonBitmask |= MGLCameraChangeReasonGestureRotate; if (rotate.state == UIGestureRecognizerStateBegan) { @@ -1671,7 +1671,7 @@ public: if (doubleTap.state == UIGestureRecognizerStateEnded) { - self.cameraChangeReason |= MGLCameraChangeReasonGestureZoomIn; + self.cameraChangeReasonBitmask |= MGLCameraChangeReasonGestureZoomIn; MGLMapCamera *oldCamera = self.camera; @@ -1708,7 +1708,7 @@ public: _mbglMap->cancelTransitions(); - self.cameraChangeReason |= MGLCameraChangeReasonGestureZoomOut; + self.cameraChangeReasonBitmask |= MGLCameraChangeReasonGestureZoomOut; if (twoFingerTap.state == UIGestureRecognizerStateBegan) { @@ -1747,7 +1747,7 @@ public: _mbglMap->cancelTransitions(); - self.cameraChangeReason |= MGLCameraChangeReasonGestureQuickZoom; + self.cameraChangeReasonBitmask |= MGLCameraChangeReasonGestureOneFingerZoom; if (quickZoom.state == UIGestureRecognizerStateBegan) { @@ -1792,7 +1792,7 @@ public: _mbglMap->cancelTransitions(); - self.cameraChangeReason |= MGLCameraChangeReasonGesturePitch; + self.cameraChangeReasonBitmask |= MGLCameraChangeReasonGestureTilt; if (twoFingerDrag.state == UIGestureRecognizerStateBegan) { @@ -2889,7 +2889,7 @@ public: { self.userTrackingMode = MGLUserTrackingModeNone; - self.cameraChangeReason |= MGLCameraChangeReasonProgrammatic; + self.cameraChangeReasonBitmask |= MGLCameraChangeReasonProgrammatic; [self _setCenterCoordinate:centerCoordinate edgePadding:self.contentInset zoomLevel:zoomLevel direction:direction duration:animated ? MGLAnimationDuration : 0 animationTimingFunction:nil completionHandler:completion]; } @@ -2941,7 +2941,7 @@ public: _mbglMap->cancelTransitions(); - self.cameraChangeReason |= MGLCameraChangeReasonProgrammatic; + self.cameraChangeReasonBitmask |= MGLCameraChangeReasonProgrammatic; _mbglMap->easeTo(cameraOptions, animationOptions); } @@ -2966,7 +2966,7 @@ public: if (zoomLevel == self.zoomLevel) return; _mbglMap->cancelTransitions(); - self.cameraChangeReason |= MGLCameraChangeReasonProgrammatic; + self.cameraChangeReasonBitmask |= MGLCameraChangeReasonProgrammatic; CGFloat duration = animated ? MGLAnimationDuration : 0; @@ -3057,7 +3057,7 @@ public: { self.userTrackingMode = MGLUserTrackingModeNone; - self.cameraChangeReason |= MGLCameraChangeReasonProgrammatic; + self.cameraChangeReasonBitmask |= MGLCameraChangeReasonProgrammatic; [self _setVisibleCoordinates:coordinates count:count edgePadding:insets direction:direction duration:duration animationTimingFunction:function completionHandler:completion]; } @@ -3109,7 +3109,7 @@ public: [self willChangeValueForKey:@"visibleCoordinateBounds"]; _mbglMap->cancelTransitions(); - self.cameraChangeReason |= MGLCameraChangeReasonProgrammatic; + self.cameraChangeReasonBitmask |= MGLCameraChangeReasonProgrammatic; _mbglMap->easeTo(cameraOptions, animationOptions); [self didChangeValueForKey:@"visibleCoordinateBounds"]; @@ -3144,7 +3144,7 @@ public: CGFloat duration = animated ? MGLAnimationDuration : 0; - self.cameraChangeReason |= MGLCameraChangeReasonProgrammatic; + self.cameraChangeReasonBitmask |= MGLCameraChangeReasonProgrammatic; if (self.userTrackingMode == MGLUserTrackingModeNone) { @@ -3231,7 +3231,7 @@ public: [self willChangeValueForKey:@"camera"]; _mbglMap->cancelTransitions(); - self.cameraChangeReason |= MGLCameraChangeReasonProgrammatic; + self.cameraChangeReasonBitmask |= MGLCameraChangeReasonProgrammatic; mbgl::CameraOptions cameraOptions = [self cameraOptionsObjectForAnimatingToCamera:camera edgePadding:edgePadding]; _mbglMap->easeTo(cameraOptions, animationOptions); @@ -3290,7 +3290,7 @@ public: [self willChangeValueForKey:@"camera"]; _mbglMap->cancelTransitions(); - self.cameraChangeReason |= MGLCameraChangeReasonProgrammatic; + self.cameraChangeReasonBitmask |= MGLCameraChangeReasonProgrammatic; mbgl::CameraOptions cameraOptions = [self cameraOptionsObjectForAnimatingToCamera:camera edgePadding:insets]; _mbglMap->flyTo(cameraOptions, animationOptions); @@ -3456,7 +3456,7 @@ public: - (void)resetCameraChangeReason { - self.cameraChangeReason = MGLCameraChangeReasonNone; + self.cameraChangeReasonBitmask = MGLCameraChangeReasonNone; } #pragma mark - Styling - @@ -5409,7 +5409,7 @@ public: { if ([self.delegate respondsToSelector:@selector(mapView:regionWillChangeWithReason:animated:)]) { - [self.delegate mapView:self regionWillChangeWithReason:self.cameraChangeReason animated:animated]; + [self.delegate mapView:self regionWillChangeWithReason:self.cameraChangeReasonBitmask animated:animated]; } else if ([self.delegate respondsToSelector:@selector(mapView:regionWillChangeAnimated:)]) { @@ -5431,7 +5431,7 @@ public: if ([self.delegate respondsToSelector:@selector(mapView:regionIsChangingWithReason:)]) { - [self.delegate mapView:self regionIsChangingWithReason:self.cameraChangeReason]; + [self.delegate mapView:self regionIsChangingWithReason:self.cameraChangeReasonBitmask]; } else if ([self.delegate respondsToSelector:@selector(mapViewRegionIsChanging:)]) { @@ -5467,7 +5467,7 @@ public: if (respondsToSelectorWithReason) { - [self.delegate mapView:self regionDidChangeWithReason:self.cameraChangeReason animated:animated]; + [self.delegate mapView:self regionDidChangeWithReason:self.cameraChangeReasonBitmask animated:animated]; } else if (respondsToSelector) { diff --git a/platform/ios/src/MGLMapViewDelegate.h b/platform/ios/src/MGLMapViewDelegate.h index abb2e9be03..704ff14112 100644 --- a/platform/ios/src/MGLMapViewDelegate.h +++ b/platform/ios/src/MGLMapViewDelegate.h @@ -1,7 +1,7 @@ #import <UIKit/UIKit.h> #import "MGLTypes.h" -#import "MGLCameraChange.h" +#import "MGLCameraChangeReason.h" NS_ASSUME_NONNULL_BEGIN @@ -47,6 +47,7 @@ NS_ASSUME_NONNULL_BEGIN - (BOOL)mapView:(MGLMapView *)mapView shouldChangeFromCamera:(MGLMapCamera *)oldCamera toCamera:(MGLMapCamera *)newCamera; /** + :nodoc: Asks the delegate whether the map view should be allowed to change from the existing camera to the new camera in response to a user gesture. @@ -85,6 +86,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)mapView:(MGLMapView *)mapView regionWillChangeAnimated:(BOOL)animated; /** + :nodoc: Tells the delegate that the viewpoint depicted by the map view is about to change. This method is called whenever the currently displayed map camera will start @@ -117,6 +119,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)mapViewRegionIsChanging:(MGLMapView *)mapView; /** + :nodoc: Tells the delegate that the viewpoint depicted by the map view is changing. This method is called as the currently displayed map camera changes as part of @@ -151,6 +154,7 @@ NS_ASSUME_NONNULL_BEGIN - (void)mapView:(MGLMapView *)mapView regionDidChangeAnimated:(BOOL)animated; /** + :nodoc: Tells the delegate that the viewpoint depicted by the map view has finished changing. |