MKAnnotation 左/右附件视图错位

MKAnnotation Left / Right Accessory View Misplacement

无法弄清楚为什么会发生这种情况。当我的标题和副标题文本太长时,我会在文本末尾得到预期的 ...。但是我的左右附件视图像这样搞砸了。

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

Title可以长也可以subtile可以长,views都不会错位。只有当两者都很长并且有尾随......他们才搞砸了。

找不到任何关于视图的最大大小/或文本长度等的文档。

我采用了计算字符串长度的技巧,当它们超过我的限制时,我打印出一个简短的标题或副标题。我宁愿让它保持原样,只是弄清楚为什么这些视图会被推高以及如何解决。

谢谢

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

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

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

UIButton *rightButton = [UIButton buttonWithType:UIButtonTypeInfoLight];

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

同样的技巧不适用于 leftCalloutAccessoryView,它显然在默认设置 NSLayoutAttributes 方面存在错误。在这种情况下,我找到的最简单(最丑陋)且唯一的解决方法是对分配给 leftCalloutAccessoryView 的视图高度进行硬编码:iOS8 上为 54px,iOS7.[=15 上为 45px =]