微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

内容更改后需要 MKAnnotationView 的 detailCalloutAccessoryView 调整大小

如何解决内容更改后需要 MKAnnotationView 的 detailCalloutAccessoryView 调整大小

我正在使用 MKAnnotationView 的 detailCalloutAccessoryView 属性显示丰富的内容视图。内容可能会发生变化,无论是由于用户对附件视图的操作,还是因为来自应用程序(或云)的另一部分的变化,所以我想在发生这种情况时调整 detailCalloutAccessoryView 的大小。我尝试了一些方法,但没有一个会强制 detailCalloutAccessoryView 调整大小;唯一的选择是取消选择注释,然后再次选择它,如果用户正在与之交互的视图,这对用户来说很麻烦。

我自己创建的视图作为子视图添加detailCalloutAccessoryView 视图,并使用自动布局根据 detailCalloutAccessoryView 进行布局。看起来不错,但是当内容更改时,内部视图会正确调整大小,但外部 detailCalloutAccessoryView 容器视图不是。

这是更改前的视图示例(大小正确):

enter image description here

删除几个标签后,我提供的内容视图大小正确,但标注视图不是

enter image description here

我试过了,但它没有做任何事情:

- (void) calloutTagsUpdateViewShouldResize {
    
    [self.selectedAnnotationView.detailCalloutAccessoryView setNeedsdisplay];
    [self.selectedAnnotationView.detailCalloutAccessoryView setNeedsLayout];
}

我也试过用任意值直接设置框架,但它没有更新:

UIView *accessoryView = self.selectedAnnotationView.detailCalloutAccessoryView;
accessoryView.frame = CGRectMake(accessoryView.frame.origin.x,accessoryView.frame.origin.y,accessoryView.frame.size.width,500);

注意:我保存了 MKMapViewDelegate self.selectedAnnotationView 方法中的 didSelectAnnotationView

有没有办法让 MKAnnotationView 的 detailCalloutAccessoryView 重绘自身,或者调整大小?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。