Проблема с безопасной зоной — хорошо на iPhone X, не на других

Итак, я пытаюсь обновить свое приложение для iPhone X (я знаю, что немного опоздал с игрой), я включил безопасную зону и исправил (предположительно) все мои ограничения, чтобы они соответствовали. На iPhone X он выглядит идеально. Но по какой-то причине на всех других iPhone он по-прежнему соответствует выемке iPhone X, несмотря на то, что Безопасная зона правильно отображает, где должен начинаться и заканчиваться пользовательский интерфейс. Я в растерянности. Ни одно из рассматриваемых ограничений не жестко закодировано, я установил для них «стандартное» значение (по крайней мере, я так думаю).

раскадровка (первая кнопка на самом деле представляет собой всплывающее окно, которое является просто статическим изображение, второе — отпечаток лапы, который является настоящей кнопкой)

испортил iPhone 8 (пузырьки и элементы пользовательского интерфейса должны быть в самом верху и внизу)

Вот мой файл раскадровки: https://ufile.io/35zvs

ОБНОВЛЕНИЕ: изображение для ercell0


person Branch    schedule 26.12.2017    source источник
comment
Можешь фотки показать?   -  person Jack    schedule 27.12.2017
comment
@jack OP обновлен, спасибо... дайте мне знать, если вам нужно что-то еще   -  person Branch    schedule 27.12.2017
comment
Можете ли вы поделиться storyboard или проектом (через ссылку Dropbox и т. д.), похоже, вы добавили слишком много ограничений.   -  person Jack    schedule 28.12.2017
comment
Файл раскадровки @jack находится по ссылке выше. Позвольте мне знать, если вам нужно что-нибудь еще. Я не добавлял никаких ограничений - только редактировал те, которые сделал автомакет.   -  person Branch    schedule 28.12.2017


Ответы (2)


Вы используете стандартное расстояние между верхом и низом для вашего Banner View с требуемым приоритетом. попробуйте установить для него значение superView: 0 или safeArea: 0 и посмотрите, решит ли это проблему для вас.

ограничения для просмотра баннера

Обновленный вид:

ограничения просмотра баннера после изменений

person RLoniello    schedule 30.12.2017
comment
Хм ... если вы имели в виду сделать приоритет 0 (который Xcode сбрасывает на 1), я только что попробовал это, и, похоже, ничего не изменилось. Очень возможно, что я неправильно понял, что вы хотели, чтобы я попробовал. - person Branch; 31.12.2017
comment
Измените Second Item на SuperView или SafeArea и установите Constant на 0. - person RLoniello; 31.12.2017
comment
@Branch Я добавил второе изображение, внимательно изучите различия, вам не нужно менять приоритет. - person RLoniello; 31.12.2017
comment
Итак, я сделал это. Верх получился отлично, низ все равно немного высоковат. Это также полностью испортилось на iPhone X. - person Branch; 31.12.2017
comment
@Branch вы установили суперпросмотр? попробуйте SafeArea.top /.bottom - person RLoniello; 31.12.2017
comment
Я использовал супервизор. Я изменил его на safearea (сохранив константы на 0), и теперь, хотя на iPhone X он выглядит так же, как и на 8 и т. д. (слава богу), все элементы пользовательского интерфейса находятся слишком в безопасной области... см. OP для рис. - person Branch; 31.12.2017
comment
@Branch просто добавьте 8 или около того к Constant. - person RLoniello; 31.12.2017
comment
установка верха на -20 и низа на 20 сделала это. спасибо большое! (это говорит мне, что я должен ждать 19 часов, чтобы присудить награду, но я сделаю это тогда) - person Branch; 31.12.2017

Можете ли вы изменить ViewAs с iPhoneX на iPhone8 и прикрепить изображение? Другие iPhone, которые вы тестируете, работают под управлением iOS 11 или более ранней версии? Если вы используете более старые версии, безопасная область не сможет помочь с выравниванием. Для версий до iOS11 используйте ограничения, которые вы использовали ранее, или привязки макета.

person Prateek Pande    schedule 28.12.2017