gpt4 book ai didi

iOS 8 MKAnnotationView rightCalloutAccessoryView 错位

转载 作者:IT王子 更新时间:2023-10-29 07:41:34 26 4
gpt4 key购买 nike

总的来说,我对 iOS 的东西还是很陌生,在测试我们的应用程序与 iOS 8 的兼容性时发现了一个问题。在 iOS 7 中,一切正常,但在 iOS 8 中,rightCalloutAccessoryView 在某些情况下未对齐。

第一个屏幕截图:正确对齐 Correctly aligned

第二张截图:对齐错误 Wrong alignment

如您所见,当 InfoWindow 的标题很长时就会出现问题。但在 iOS 7 上情况并非如此,而且我找不到任何提及此情况已更改的信息?

我试图了解原因并找到解决此问题的方法,但仍然找不到任何东西。这是我们自己可以解决的还是我们必须向 Apple 提交问题?

任何帮助/想法将不胜感激,因为我不知何故对这个问题提出了过度挑战。

添加 MKAnnotationViews 的代码

- (MKAnnotationView *)viewForStation:(id<MKAnnotation>)annotation {
static NSString *stationIdentifier = @"stao";
MKAnnotationView *annotationView = [self.mapView dequeueReusableAnnotationViewWithIdentifier:stationIdentifier];
if (annotationView == nil) {
annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:stationIdentifier];
annotationView.image = [UIImage bundleImageNamed:PIN_IMAGE];
annotationView.canShowCallout = YES;
annotationView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
}
return annotationView;
}

您可能感兴趣,我(刚刚)也将这个问题添加到 apple.developer.com 上的 iOS 8 Beta 部分:https://devforums.apple.com/thread/242282?tstart=0

如果我在这里或 apple.developer.com 上得到答案,我会反射(reflect)出来,以便我们可以在两个网站上找到它

最佳答案

我通过设置 autoresizingmask 来修复垂直错误和水平错误的 frame.size.width 解决了这个问题

UIButton* infoButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[infoButton setFrame:CGRectMake(0, 0, CGRectGetWidth(infoButton.frame)+10, CGRectGetHeight(infoButton.frame))];
[infoButton setAutoresizingMask:UIViewAutoresizingFlexibleBottomMargin|UIViewAutoresizingFlexibleTopMargin];
[annotationView setRightCalloutAccessoryView:infoButton];

关于iOS 8 MKAnnotationView rightCalloutAccessoryView 错位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25484608/

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