Iphone 带有 google 地图 + UIView 的应用不响应滑动手势
Iphone App with google maps + UIView does not respond to swipe gestures
我创建了一个测试项目,它有一个 UIViewController。声明为 xib 的 UIView (myView) 它有一个图像和 3 个按钮
我正在以编程方式将 UIView 添加到 UIViewController,并在 UIViewControllerviewDidLoad
方法中向 UIView 添加滑动手势
swipeRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeAction:)];
swipeRight.direction = UISwipeGestureRecognizerDirectionRight;
[myView addGestureRecognizer:swipeRight];
[self.view addSubview:myView];
一切正常。
然后我在 viewDidLoad
中再次将 google 映射添加到 UIViewcontroller
// Create a GMSCameraPosition that tells the map to display the
// coordinate -33.86,151.20 at zoom level 6.
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
longitude:151.20
zoom:6];
mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera];
mapView_.myLocationEnabled = YES;
self.view = mapView_;
// Creates a marker in the center of the map.
GMSMarker *marker = [[GMSMarker alloc] init];
marker.position = CLLocationCoordinate2DMake(-33.86, 151.20);
marker.title = @"Sydney";
marker.snippet = @"Australia";
marker.map = mapView_;
第一个问题: myview 没有显示 --> 我将添加 UIView 的代码移动到 viewDidAppear
.
现在可以看到视图,按钮有响应但是滑动手势不起作用
有什么想法吗?
由于以下行,您添加 myView
的视图将被您的地图视图替换:self.view = mapView_;
因此,您的视图不可见。
您应该将地图视图添加为子视图。尝试用 [self.view addSubview:mapView_]
替换该行
我创建了一个测试项目,它有一个 UIViewController。声明为 xib 的 UIView (myView) 它有一个图像和 3 个按钮
我正在以编程方式将 UIView 添加到 UIViewController,并在 UIViewControllerviewDidLoad
方法中向 UIView 添加滑动手势
swipeRight = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(swipeAction:)];
swipeRight.direction = UISwipeGestureRecognizerDirectionRight;
[myView addGestureRecognizer:swipeRight];
[self.view addSubview:myView];
一切正常。
然后我在 viewDidLoad
// Create a GMSCameraPosition that tells the map to display the
// coordinate -33.86,151.20 at zoom level 6.
GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.86
longitude:151.20
zoom:6];
mapView_ = [GMSMapView mapWithFrame:CGRectZero camera:camera];
mapView_.myLocationEnabled = YES;
self.view = mapView_;
// Creates a marker in the center of the map.
GMSMarker *marker = [[GMSMarker alloc] init];
marker.position = CLLocationCoordinate2DMake(-33.86, 151.20);
marker.title = @"Sydney";
marker.snippet = @"Australia";
marker.map = mapView_;
第一个问题: myview 没有显示 --> 我将添加 UIView 的代码移动到 viewDidAppear
.
现在可以看到视图,按钮有响应但是滑动手势不起作用
有什么想法吗?
由于以下行,您添加 myView
的视图将被您的地图视图替换:self.view = mapView_;
因此,您的视图不可见。
您应该将地图视图添加为子视图。尝试用 [self.view addSubview:mapView_]