Быстрое обновление, поскольку сейчас я вижу большой интерес к этому, когда iOS 10 работает вживую. Я в конечном счете открыл TSI, и Apple ответила сегодня, указав, что я должен открыть для этого ошибку. Они не предоставили никакой дополнительной информации или предложений об обходных решениях, и подразумевается, что здесь что-то не так.
Тем временем я все еще копаю обходной путь. Я вытащил весь макет из StackView и заменил ограничения автоопределения, только чтобы испытать ту же проблему. Проблема может быть в MapView.
У меня проблема с размещением нескольких меток и MapView в вертикальном StackView. Этот вид не ведет себя последовательно с iOS 10/Xc8.
На симуляторе 6/S он отображается правильно. На SE размер MapView
фактически больше, чем на 6, и закрывает метки. Это разрешится после поворота (и оно выглядит отлично в предварительном просмотре раскадровки)
Я продемонстрировал поведение с чрезвычайно простым проектом. Он содержит ракурс с одним вертикальным StackView, который выглядит следующим образом:
В StackView используется раскладка Fill и Fill. Интервал отсутствует.
Каждая метка имеет приоритет обхода контента 251 и сопротивление сжатию 750.
MapView
имеет обертку содержимого 250 и сжатие 750.
Я пробовал играть с этими цифрами, но он никогда не работал. Теоретически, MapView
имеет самый низкий приоритет обхода, поэтому он должен использовать все дополнительное пространство с распределением Fill.
Вместо этого я вижу (на симуле SE)
Если я вращаю устройство и обратно - он выглядит отлично. Похоже, что с макетом существует некоторая проблема с синхронизацией. Однако я ничего не делаю в коде - текст ярлыков жестко закодирован в storyboard
. Я ничего не делаю в коде.
Как уже упоминалось, на iPhone6 он выглядит отлично. Это также отлично выглядит, если я произвольно подстрою высоту ярлыков. Я заметил, что ярлыки были одинаковыми fontsize
, особенно, это было хорошо. Поэтому я задаюсь вопросом, использует ли она начальную метку fontsize
для вычисления внутреннего contentsize
или чего-то странного подобного.
У iPad iPad также есть проблемы. Фактически, весь экран сначала покрывается картой, и я вообще не вижу этикетки (до поворота).
Я не уверен, что ScrollViews
должен хорошо играть с StackViews
. Тем не менее, я попытался вытащить MapView
оттуда и зафиксировать его ниже StackView
с помощью autolayout
. Удивительно, но у меня были такие же конечные результаты.
Заключительное примечание. Я не тестировал это с помощью примера проекта, но в моем первоначальном проекте (проявляющем такое же поведение) это произошло в Xcode 8, но не в Xcode 7.