Question

I'm trying to create a UISwitch laid on mapView_ of Google Maps for my iOS app, but it seems not to work.

In details, I first followed instruction from google, created mapView_, then made it my viewcontroller's view:

self.view = mapView_;

Then, I created an UISwitch programmatically and added it as a subview:

mySwitch = [[UISwitch alloc] initWithFrame:CGRectMake(50, 360, 0, 0)];
[mySwitch setBackgroundColor:[UIColor clearColor]];
[mySwitch addTarget:self
             action:@selector(changeSwitch:)
        forControlEvents:UIControlEventTouchDown];
[mapView_ addSubview:mySwitch];

But when I touched the switch both in simulator and device, it didn't change its state from ON->OFF or OFF->ON. I even tried different UIControlEvent, such as UIControlEventValueChanged but it didn't work. To make sure that the code should work, I tried on a normal view of a normal test viewcontroller (that means, not using google maps), it worked fine!

Does anyone have any comment about this issue?

Thanks heaps!

Was it helpful?

Solution

You can work around this issue by adding both the UISwitch and the GMSMapView to a single UIView parent, instead of adding the UISwitch as a child of a GMSMapView. Yes, this means you need to position both the GMSMapView and the UISwitch.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top