具有MapView的StackView在初始加载时无法正常工作

时间:2016-09-04 17:12:03

标签: ios autolayout mapkit scrollview uistackview

快速更新,因为我看到很多人对此感兴趣,因为iOS 10已经上线了。我最终开了一个TSI,Apple今天回复说明我应该为此打开一个bug。他们没有为解决方法提供任何进一步的信息或建议,这意味着这里有一些问题。

与此同时,我还在寻找一种解决方法。我将整个布局从StackView中拉出来并替换为自动布局约束,只是遇到了同样的问题。问题可能出在MapView上。

我有一个问题,在垂直StackView中放置一些标签和MapView。此视图与iOS 10 / Xc8的行为不一致。

在6 / S模拟器上,它可以正确渲染。在SE上,MapView实际上看起来比它在6上更大,它掩盖了标签。旋转后解决(在故事板预览中显示正常)

我用非常简单的项目证明了这种行为。它包含一个Storyboard视图,其中包含一个垂直StackView,如下所示:

enter image description here

StackView使用“填充”对齐和“填充”分布。没有间距。

每个标签的内容拥抱优先级为251,抗压缩性为750。

MapView内容拥抱250,压缩750。

我试过玩这些数字,但它从未奏效。从理论上讲,MapView具有最低的拥抱优先级,因此它应该使用Fill分布来消耗所有额外的空间。

相反,这就是我所看到的(在SE SIM上)

bottom two labels covered by the MapView

如果我旋转设备并返回 - 它看起来很好。所以看起来布局有一些时间问题。但是,我在这里没有做任何代码 - 标签文本在storyboard中是硬编码的。我不会在代码中做任何事情。

如上所述,它在iPhone6上看起来很好。如果我随意调整标签的高度,它看起来也很好。我注意到当标签完全相同fontsize时,它很好。所以我想知道它是否使用初始标签fontsize计算内在contentsize或类似的东西。

iPad Air sim也存在问题。事实上,整个地图最初都是由地图覆盖的,我根本看不到标签(直到旋转)。

我不确定ScrollViews是否应与StackViews很好地配合。也就是说,我确实尝试将MapView拉出来并将其固定在StackView autolayout下方。令人惊讶的是,我有相同的最终结果。

最后的注意事项 - 我没有使用示例项目对此进行测试,但在我的原始项目中(表现出相同的行为),这发生在Xcode 8中,而不是在Xcode 7中。

0 个答案:

没有答案
相关问题