您仍然无法用一根手指滚动,但如果在放大和缩小时用两根手指滚动,则可以移动地图。
我努力了 :
>对MKMapKit进行子类化以禁用其内的滚动视图。
> Implementing -mapVIEw:regionWillChangeAnimated:执行中心。
>禁用scrollEnabled。
但没有运气。
任何人都可以告诉我一个确切的方法,只能放大一个MKMapVIEw,所以中心点总是保持在中间?
解决方法 您可以尝试使用UIPinchGestureRecognizer自己处理捏捏手势:首先将scrollEnabled和zoomEnabled设置为NO并创建手势识别器:
UIPinchGestureRecognizer* recognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self action:@selector(handlePinch:)];[self.mapVIEw addGestureRecognizer:recognizer];
在识别器处理程序中,根据缩放比例调整MKCoordinateSpan:
- (voID)handlePinch:(UIPinchGestureRecognizer*)recognizer{ static MKCoordinateRegion originalRegion; if (recognizer.state == UIGestureRecognizerStateBegan) { originalRegion = self.mapVIEw.region; } double latdelta = originalRegion.span.latitudeDelta / recognizer.scale; double londelta = originalRegion.span.longitudeDelta / recognizer.scale; // Todo: set these constants to appropriate values to set max/min zoomscale latdelta = MAX(MIN(latdelta,80),0.02); londelta = MAX(MIN(londelta,0.02); MKCoordinateSpan span = MKCoordinateSpanMake(latdelta,londelta); [self.mapVIEw setRegion:MKCoordinateRegionMake(originalRegion.center,span) animated:YES];}
这可能不会像苹果的实现完全正常,但它应该可以解决你的问题。
总结以上是内存溢出为你收集整理的iphone – 防止在MKMapView中滚动,当缩放时也是如此全部内容,希望文章能够帮你解决iphone – 防止在MKMapView中滚动,当缩放时也是如此所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)