Добрый день, я борюсь с автоматическим представлением макета в iOS, когда он работает на более мелкой цели.
Я создал тестовый проект и использую раскадровку. Имеет 3 вида. Верхняя, средняя и нижняя. Все они связаны с приложением через отдельные выходы IB.
Представления создаются с автоматическим макетом и ограничениями, которые сообщают о правильности в Xcode и отображают представления, как и ожидалось в симуляторе. Вид сверху: stati c и имеет ограничение по высоте. Средний вид имеет X, y и задается через соотношение сторон и снова работает отлично.
Вид снизу составляет 8px от среднего вида и 8px от безопасного вида на 3 других размерах
Проблема заключается в получении размера вида снизу после запуска приложения.
Например, Запуск на iPhone 11 Max, нижний вид - 374 x 218. Если я запускаю его на симуляторе iPhone 8, вид, который вы ожидаете, был изменен, но границы сообщают то же самое, что и iPhone 11 Max, поэтому вместо 335 x 111 его отчет равен 374 x 218.
Это версия Obj C, но в Swift он сообщает то же самое.
(void) viewDidLoad {[super viewDidLoad];
CGRect b = Bot.bounds; NSLog (@ "Bot =% .0f% .0f", b.size.height, b.size.width);
}, что приводит к 2020-04-15 11: 50: 31.956443 + 0100 viewtest [51661: 2280346] Bot = 218 374
Независимо от того, на каком симуляторе он работает одинаково.
Причина, по которой я спрашиваю это, состоит в том, что мне нужно поместить различные кнопки в представление в зависимости от размера представления, а также изменить размер JPG, чтобы соответствовать виду.
привет
Боб