66 lines
2.6 KiB
Objective-C
66 lines
2.6 KiB
Objective-C
#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,
|
|
|
|
// :nodoc: Cancelled
|
|
MGLCameraChangeReasonTransitionCancelled = 1 << 16
|
|
|
|
};
|