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.
 
 
 

60 lines
2.2 KiB

#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