You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
2.2 KiB
61 lines
2.2 KiB
![]()
2 years ago
|
#if !defined(__has_feature) || !__has_feature(objc_arc)
|
||
|
#error "This file requires ARC support."
|
||
|
#endif
|
||
|
|
||
|
#import "GoogleMapsDemos/Samples/VisibleRegionViewController.h"
|
||
|
|
||
|
#import <GoogleMaps/GoogleMaps.h>
|
||
|
|
||
|
static CGFloat kOverlayHeight = 140.0f;
|
||
|
|
||
|
@implementation VisibleRegionViewController {
|
||
|
GMSMapView *_mapView;
|
||
|
UIView *_overlay;
|
||
|
UIBarButtonItem *_flyInButton;
|
||
|
}
|
||
|
|
||
|
- (void)viewDidLoad {
|
||
|
[super viewDidLoad];
|
||
|
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-37.81969
|
||
|
longitude:144.966085
|
||
|
zoom:4];
|
||
|
_mapView = [GMSMapView mapWithFrame:CGRectZero camera:camera];
|
||
|
|
||
|
// Enable my location button to show more UI components updating.
|
||
|
_mapView.settings.myLocationButton = YES;
|
||
|
_mapView.myLocationEnabled = YES;
|
||
|
_mapView.padding = UIEdgeInsetsMake(0, 0, kOverlayHeight, 0);
|
||
|
self.view = _mapView;
|
||
|
|
||
|
// Create a button that, when pressed, causes an overlaying view to fly-in/out.
|
||
|
_flyInButton = [[UIBarButtonItem alloc] initWithTitle:@"Toggle Overlay"
|
||
|
style:UIBarButtonItemStylePlain
|
||
|
target:self
|
||
|
action:@selector(didTapFlyIn)];
|
||
|
self.navigationItem.rightBarButtonItem = _flyInButton;
|
||
|
|
||
|
CGRect overlayFrame = CGRectMake(0, -kOverlayHeight, 0, kOverlayHeight);
|
||
|
_overlay = [[UIView alloc] initWithFrame:overlayFrame];
|
||
|
_overlay.autoresizingMask = UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleWidth;
|
||
|
|
||
|
_overlay.backgroundColor = [UIColor colorWithHue:0.0 saturation:1.0 brightness:1.0 alpha:0.5];
|
||
|
[self.view addSubview:_overlay];
|
||
|
}
|
||
|
|
||
|
- (void)didTapFlyIn {
|
||
|
UIEdgeInsets padding = _mapView.padding;
|
||
|
|
||
|
[UIView animateWithDuration:2.0 animations:^{
|
||
|
CGSize size = self.view.bounds.size;
|
||
|
if (padding.bottom == 0.0f) {
|
||
|
_overlay.frame = CGRectMake(0, size.height - kOverlayHeight, size.width, kOverlayHeight);
|
||
|
_mapView.padding = UIEdgeInsetsMake(0, 0, kOverlayHeight, 0);
|
||
|
} else {
|
||
|
_overlay.frame = CGRectMake(0, _mapView.bounds.size.height, size.width, 0);
|
||
|
_mapView.padding = UIEdgeInsetsZero;
|
||
|
}
|
||
|
}];
|
||
|
}
|
||
|
|
||
|
@end
|