Nil*_*nch 21 iphone objective-c mkmapview ipad ios
scrollEnabled
一旦用户开始在MKMapView中进行捏合,这似乎是易碎的.
您仍然无法用一根手指滚动,但如果您在放大和缩小时用两根手指滚动,则可以移动地图.
我试过了 :
MKMapKit
以禁用其中的滚动视图.mapView:regionWillChangeAnimated:
强制执行中心.scrollEnabled
.但没有运气.
任何人都可以告诉我一个只有放大MKMapView的确定方法,所以中心点始终保持在中间?
Fel*_*lix 30
您可以尝试使用以下方法自行处理捏合手势UIPinchGestureRecognizer
:
首先设置scrollEnabled
和zoomEnabled
对NO
创造的手势识别:
UIPinchGestureRecognizer* recognizer = [[UIPinchGestureRecognizer alloc] initWithTarget:self
action:@selector(handlePinch:)];
[self.mapView addGestureRecognizer:recognizer];
Run Code Online (Sandbox Code Playgroud)
在识别器处理程序中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, 80), 0.02);
MKCoordinateSpan span = MKCoordinateSpanMake(latdelta, londelta);
[self.mapView setRegion:MKCoordinateRegionMake(originalRegion.center, span) animated:YES];
}
Run Code Online (Sandbox Code Playgroud)
这可能不像Apple的实现那样完美,但它应该可以解决您的问题.
归档时间: |
|
查看次数: |
7916 次 |
最近记录: |