MKMapView在iOS 6中调整大小后变空白

3
我在 iOS 6 中调整 MKMapView 的大小时遇到了奇怪的问题。 基本上,我的场景如下: 我有一个 UITableView,在每个单元格中显示一个 MKMapView。
在 iOS 5 中,它看起来像这样:

http://cl.ly/image/0e0R1623413s

在iOS 6中,它看起来像这样:

http://cl.ly/image/2C041E3B3k1X

当单元格被选中时,我调用了一个UITableViewView的beginUpdates、endUpdates块,来改变单元格的大小,并且通过MKMapView的自动调整大小掩码进行调整大小。
[self.tableView beginUpdates];
[self.tableView endUpdates];

在beginUpdates和endUpdates块之后,这就是我在iOS 5中得到的结果(它像魅力一样工作):

http://cl.ly/image/3Q0O0q1S0E3N

在iOS 6中,MKMapView会变成空白,只显示“Legal”链接。

http://cl.ly/image/443x2r2D3l44

我没有找到任何关于这个问题有用的信息,这让我感到非常困惑。 唯一提到类似问题的参考资料是在苹果开发者论坛上的这个帖子:

https://devforums.apple.com/message/733353#733353

然而,问题与此不同,唯一的建议是在主线程上执行操作并确保MKMapView可见。在我的情况下,动画是在主线程上执行的,并且视图也可见,因此显然不是问题所在。
有没有人有一些建议、想法或解决这个问题的想法?
提前致谢。
1个回答

11

我的app升级到iOS6后出现了类似的问题,我怀疑与选中样式有关。我的解决方法是将selectionStyle设置为UITableViewCellSelectionStyleNone。我的地图视图不再消失了。你可以试试看是否有帮助。


谢谢Angus。这绝对是SelectionStyle。看起来蓝色或灰色的UITableViewCellSelectionStyle会导致所有子视图(包括MKMapView)上的setSelected和/或类似方法被触发,而MKMapView似乎以意外的方式支持它。 - ksm
注意:您还可以子类化UITableViewCell,重写setSelected:animated:和setHighlighted:animated:方法,并在此处仅突出显示您想要突出显示的内容。 - Frizlab

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接