Map UI Extensions
Map UI Extensions
iOS Maps SDK provides the following built-in UI views:
-
Compass button
-
Current location button
-
Panning controls
-
Zooming controls
You can toggle the visibility of these views using the UiSettings class. Changes made on this class are reflected on the map immediately. Each UI element has a pre defined style that determines its position relative to the edge of the map. This style can be overridden to provide custom position, adjust size or replace default colors. It is also possible to alter these parameters in runtime by modifying view’s LayoutParams.
Getting started
TTControlView class is a part of TomTomOnlieSDKMapsUIExtensions framework. To be able to use it, add this framework to Podfile as follows:
pod 'TomTomOnlineSDKMapsUIExtensions'
Next step is to add TTControlView on top of TTMapView with the same size either through constraints or a frame and then to make a relation between these views.
// The instance 'controlView' is a type of TTControllView
self.controlView.mapView = self.mapView;
Compass
By default, the compass button is enabled and located in the top left corner of the map - ‘MapView'. The compass appears only when the map orientation is different than zero (‘North' position). When the user clicks on the compass button, the map orientation is set to zero and the compass disappears.
![]() Default |
![]() Pressed |
![]() North up |
-
To disable the compass button:
self.controlView.compassButton.hidden = YES;
-
To enable the compass button:
[self.controlView initDefaultCompassButton];
-
To override default style:
self.controlView.compassButton = self.customCompassButton;
Current location
By default, the current location button is enabled and placed in the bottom left corner of the map -'MapView'. The current location button appears only when the map center position on the screen is different from user’s current location. When the user clicks on the current location button, the map location is set to the user’s location and the button disappears. The default action for the button centres the map on the user’s location if 'MapView' has set up shown current position on 'YES'.
![]() Default |
![]() Pressed |
-
To disable the current location button:
self.controlView.centerButton.hidden = YES;
-
To enable the current location button:
[self.controlView initDefaultCenterButton];
-
To override default style:
self.controlView.compassButton = self.customCompassButton;
Panning controls
By default, the panning controls view is disabled and it is placed vertically in the center and horizontally on right site of the map -'MapView'. The default action for the view is to move the map in desired direction.
![]() ![]() Pan down |
![]() ![]() Pan left |
![]() ![]() Pan right |
![]() ![]() Pan up |
-
To enable the panning controls:
[self.controlView initDefaultTTPanControlView];
-
To disable the panning controls:
self.controlView.controlView.hidden = YES;
-
To override default style:
self.controlView.controlView.leftControlBtn = customLeftBtn;
Zooming controls
By default, the zooming controls view is disabled and it is placed vertically in the center and horizontally on right site of the map -'MapView'. The default action for the view is to zoom in or zoom out the map.
![]() ![]() Zoom in |
![]() ![]() Zoom out |
-
To enable the zooming controls:
[self.controlView initDefaultTTZoomView];
-
To disable the zooming controls:
self.controlView.zoomView.hidden = YES;
-
To override default style:
self.controlView.zoomView.zoomIn = customZoomIn;