gpt4 book ai didi

iphone - 有没有办法旋转 MKMapView 并仍然显示 Google Logo ?

转载 作者:行者123 更新时间:2023-12-03 21:09:14 25 4
gpt4 key购买 nike

好吧,我见过一些类似的问题,但似乎找不到真正回答这个问题的问题,所以就在这里。

我正在旋转(或想要)MKMapView:

[mapView setTransform:CGAffineTransformMakeRotation(angle)];

这工作得很好,只是 Google Logo 会随之旋转,我听说这是不行的。另外,我实际上想让我的 map View 大于屏幕,以便旋转时整个屏幕仍然显示 map ,但这也会将 Google Logo 移出屏幕。

那么是否可以旋转 MkMapView 并仍然显示 Google Logo ???也许调用某个 Google Web AP

最佳答案

所以我找到了一种方法来做到这一点,尽管我仍然觉得它有点像黑客,因为苹果可能会在未来的版本中改变一些东西,从而打破这种技术。

MKMapView 有 2 个 subview 。其中之一是 UIImageView,它出于版权目的而保存“Google”图像。

因此,在IB中,您可以设置位于左下角的自己的UIImageView,并且在代码中您可以将其图像设置为与 map View 内的UIImageView中的图像相同:

-(void) getImage {
for(UIView *v in mapView.subviews) {

if([v isKindOfClass:[UIImageView class]]) {
NSLog(@"%@",v);
self.cpyView.image=((UIImageView *)v).image;
}
}

}

现在,当您旋转 MKMapView 时,您的 UIImageView 将不会旋转。

现在,这里的另一个技巧是将 MKMapView 嵌入到另一个 View (viewForMap) 中(这个想法借自 Wei-Meng Lee 的 Beginning iOS 4)。

将 UIView 放入 IB 中,并将其调整为您想要的可见 map 的大小。将其设置为剪辑 IB 中的 subview 。

在代码中,您将分配] initWithFrame 一个 MKMapView,以便 MKMapView 位于此 viewForMap 的中心,但比它大。

例如,如果您的 viewForMap 是 320、372,则执行以下操作:

mapView=[[MKMapView alloc] initWithFrame:CGRectMake(-90,-64,500,500)];
mapView.mapType=MKMapTypeHybrid;
mapView.delegate=self;
[viewForMap addSubview:mapView];

现在您可以旋转 map mapView.transform=CGAffineTransformMakeRotation(-M_PI/2);

保存“Google”图像的 UIImageView 不会旋转,因此它保持可见。 MKMapView 内的“Google”图像将不在屏幕上。

关于iphone - 有没有办法旋转 MKMapView 并仍然显示 Google Logo ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4408849/

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