MKAnnotation左/右附件查看错位

时间:2015-06-04 08:00:31

标签: ios mapkit mkannotationview

无法弄清楚为什么会发生这种情况。当我的标题和副标题文本很长时,我会在文本末尾得到预期的...然而,我的左右配件视图会像这样混乱。

enter image description here

附件视图框和边界没有改变。它们与正常绘制视图时相同。像,

enter image description here

标题可以很长或者子标题可以很长,并且视图不会错位。只有当两者都很长并且尾随...时才会搞砸。

无法找到有关视图/文本长度等的最大大小应该是什么的任何文档。

我已经使用了计算字符串长度的黑客,当它们超出我的限制时,我打印出一个简短的标题或副标题。我宁愿把它留下来,只是弄清楚为什么这些观点被推高以及如何解决。

由于

注意:我使用默认的MKAnnotationView,只需设置标题和副标题。

1 个答案:

答案 0 :(得分:1)

这似乎是一个可以通过不同方式解决的错误。

rightCalloutAccessoryView垂直对齐可以通过简单设置autoresizingMask来修复,如下所示:

UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeInfoLight];

rightButton.autoresizingMask = UIViewAutoresizingFlexibleBottomMargin | UIViewAutoresizingFlexibleTopMargin;
annotationView.rightCalloutAccessoryView = rightButton;

同样的技巧不适用于leftCalloutAccessoryView,它显然存在默认情况下如何设置NSLayoutAttributes的错误。在这种情况下,我发现的最简单(最丑陋)和唯一的修复是硬编码分配给leftCalloutAccessoryView的视图的高度:iOS8上54px,iOS7上45px。