Я пытаюсь оптимизировать приложение для экрана iPhone X. В настоящее время на большинстве экранов отображаются черные или белые полосы. В качестве примера я буду использовать PaymentMethodsView
.
PaymentMethodsView
- это пользовательский UIView
, содержащий 1 или 2 кнопки по горизонтали StackView
, superView имеет серый фон. Это StackView
в настоящее время ограничено 16px суперпредставлением (все 4 стороны). В настоящее время это выглядит так на iPhone X (а на обычных iPhone вид только в нижней части экрана:
Здесь я хочу добиться того, чтобы серая область доходила до нижней части экрана, а желтая - там, где сейчас находится нижняя часть всего изображения. (Так на 16px ниже)
Я могу заставить это работать, включив Use Safe Area Layout Guide
для этого ViewController
, ограничив PaymentMethodsView
в viewController до 0 to safe area
по сторонам и 0 to superview
снизу. Затем в самом PaymentMethodsView
я изменяю все ограничения StackView
на safe area
вместо superview
и меняю нижнее ограничение на 0 вместо 16.
Это работает нормально, за исключением того, что на обычных iPhone нижние 16px (под StackView) исчезают, а желтая кнопка помещается внизу экрана.
Как мне исправить это?
- На iPhone X: серая область внизу экрана, кнопка 0px на
bottom safe area
- На обычных iPhone: серая область внизу экрана, 16 пикселей между желтой кнопкой и нижней частью экрана.
Спасибо!