gpt4 book ai didi

cocoa-touch - iPad 上的 MKMapView 渲染问题

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:57:27 26 4
gpt4 key购买 nike

我的问题只出现在 iPad 上。 MKMapView 总是有未渲染的部分(下图右侧)。只要我触摸这个窗口, map View 就会重新绘制自己。但它永远不会立即正确呈现。此问题发生在 iOS 4.2 以及模拟器和设备中的 iOS 3.2 中。构造MKMapView的代码如下:

- (void)viewDidLoad {
[super viewDidLoad];
mapview = [[[MKMapView alloc] initWithFrame:CGRectMake(0,0,self.view.frame.size.width,230)] autorelease]; // because of apples bug
mapview.autoresizingMask = UIViewAutoresizingFlexibleWidth;
MKCoordinateSpan globe = MKCoordinateSpanMake(100, 100);

CLLocationCoordinate2D worldCenter; worldCenter.latitude = 42.032974; worldCenter.longitude =21.359375;

MKCoordinateRegion worldmap = MKCoordinateRegionMake(worldCenter, globe);
mapview.region = worldmap;
mapview.zoomEnabled = NO;
mapview.showsUserLocation = YES;
mapview.delegate = self;

NSRange theRange;
theRange.location = 1;
theRange.length = [annotations count]-1;

[mapview addAnnotations:[annotations subarrayWithRange:theRange]];
[self.view addSubview:mapview];
}

问题仅在横向显示时出现。

Incorrect span更新

这是我触摸 View 后的跨越方式。 Correct span

最佳答案

尽管如此,这是 Apple 的错误。在 iPad 横向模式下,您的经度跨度可能不足以覆盖全局 360 度。它应该使用缩放自动缩放,但事实并非如此。仅当您的 centerMap 恰好位于 0 度经度时,它才会正确自动缩放。诡异的。

解决方法:

- (void)willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration {
CLLocationCoordinate2D worldCenter; worldCenter.latitude = 42.032974;
worldCenter.longitude = UIDeviceOrientationIsLandscape(toInterfaceOrientation)? 0.0 : 21.359375;
mapview.centerCoordinate = worldCenter;
}

关于cocoa-touch - iPad 上的 MKMapView 渲染问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5123559/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com