内容更改后需要 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 (将#修改为@)