iOS 8 使用 leftCalloutAccessoryView 显示冗长内容时 MKMapView 标注上的奇怪动画
iOS 8 Weird animation on MKMapView callout when using leftCalloutAccessoryView to display lengthy content
我对 MKMapView
的标注视图有一个奇怪的问题。我正在使用 leftCalloutAccessoryView
设置一个包含图像和几个标签的视图,如下图所示。每当我点击注释时,通常会显示标注的动画就会出现,然后我的内容会消失并通过从左侧滑动重新出现,如 gif 图像所示。我不知道如何解决这个问题。这只发生在 iOS 8。它在 iOS 7.
上看起来很好
我自己想出来了。所以我发布这篇文章是为了帮助 运行 遇到同样问题的任何人。问题在于我返回 leftCalloutAccessoryView
的方式。我正在覆盖该方法并通过在此处分配它来返回 UIView
。那是出于某种原因导致了动画。我创建了一个新的 属性 并初始化了附件视图,并且每次都在 leftCalloutAccessoryView
中返回相同的对象。这解决了问题。
@property (nonatomic, strong) UIView *accessory;
和
-(UIView *)leftCalloutAccessoryView {
return self.accessory;
}
-(UIView *)accessory {
if (_accessory == nil) {
UIView *backgroundView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.mapView.frame.size.width-8, height)];
// custom code here
_accessory = backgroundView;
}
return _accessory;
}
所有这些都解决了问题。
我对 MKMapView
的标注视图有一个奇怪的问题。我正在使用 leftCalloutAccessoryView
设置一个包含图像和几个标签的视图,如下图所示。每当我点击注释时,通常会显示标注的动画就会出现,然后我的内容会消失并通过从左侧滑动重新出现,如 gif 图像所示。我不知道如何解决这个问题。这只发生在 iOS 8。它在 iOS 7.
我自己想出来了。所以我发布这篇文章是为了帮助 运行 遇到同样问题的任何人。问题在于我返回 leftCalloutAccessoryView
的方式。我正在覆盖该方法并通过在此处分配它来返回 UIView
。那是出于某种原因导致了动画。我创建了一个新的 属性 并初始化了附件视图,并且每次都在 leftCalloutAccessoryView
中返回相同的对象。这解决了问题。
@property (nonatomic, strong) UIView *accessory;
和
-(UIView *)leftCalloutAccessoryView {
return self.accessory;
}
-(UIView *)accessory {
if (_accessory == nil) {
UIView *backgroundView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, self.mapView.frame.size.width-8, height)];
// custom code here
_accessory = backgroundView;
}
return _accessory;
}
所有这些都解决了问题。