我有兴趣打印一些不属于视图层次结构的 MKMapView,并且仅在用户点击打印时创建。
似乎以下情况是正确的:
- 屏幕外的 MKMapViews 根本不渲染。
- 打印 MKMapView 会打印出它呈现的内容,但它目前是这样的。
所以似乎要打印我的地图视图,我需要将它们放入视图层次结构中。幸运的是,从实验来看,我似乎可以在屏幕上将一堆地图视图并排放置,它们仍然会渲染。
我的主要问题是我怎么知道他们已经渲染了?如果我在将地图视图放入视图层次结构后立即触发打印命令,它们将打印部分渲染,缺少位,如下所示。我想等到他们完成加载,然后运行打印作业。(如果他们可以在屏幕上显示打印表时在后台加载,那就更好了,然后我只是在用户点击打印后给用户一个进度条,直到地图完成加载。)
(下图显示了打印部分加载的地图视图时会发生什么。)
我的第二个问题是:有没有更好的方法来打印多个地图视图?将所有内容都放入视图层次结构并不是很好——它限制了我可以使用的最大大小,这意味着我有很多笨拙的代码来处理子视图。