изменение значений ограничений в зависимости от того, какой iPhone пользователь использует - PullRequest
0 голосов
/ 25 марта 2020

Поскольку все айфоны используют категорию экрана w C hR, я не могу найти способ изменить некоторые ограничения, скажем, между iPhone 11 Pro max и iPhone 8, у которых совершенно другой размер экрана.

Есть ли способ сделать это? или я просто должен придумать дизайн, подходящий для всех iPhone размеров экрана

1 Ответ

1 голос
/ 25 марта 2020

Я думаю, что проверка каждой iPhone модели на самом деле не масштабируема и также кажется излишней.

1) По моему мнению, вы можете сделать начать с базовой iPhone нужной модели для поддержки , скажем, iPhone SE, чтобы ваш дизайн хорошо вписывался в iPhone SE и , а затем во время выполнения масштабируйте до текущего размера экрана устройства .

Вы получите scale ratio, например 1.2, 1.8..et c, которое вы можете применить (во время выполнения) к таким ограничениям, как font sizes может быть:

var scaleRatio: CGFloat = {
    let iPhoneSEWidth: CGFloat = 320
    let currentDeviceWidth = UIScreen.main.bounds.size.width
    return currentDeviceWidth/iPhoneSEWidth
}()

И может применить это как:

label.font = font.size(12 * scaleRatio)

, где 12 - размер шрифта, который хорошо вписывается в iPhone SE (ваша база), а затем во время выполнения он масштабируется до текущего соотношения между вашим базовым размером экрана и текущий iPhone размер экрана.

2) Еще одна вещь, которую вы могли бы сделать в UI Design, это, вероятно, вместо определения определенного ограничения c, такого как width или height или другого anchor ' константы s должны определять якорные ограничения представления как пропорционально якорным ограничениям других представлений ; например, вы можете захотеть, чтобы ширина представления всегда была вдвое меньше или примерно равна половине ширины контейнера, вы можете использовать multiplier:

childView.widthAnchor.constraint(equalTo: containerView.widthAnchor, multiplier: 0.5).isActive = true

Все зависит от того, какая стратегия лучше подходит для какого типа constraints вы хотите увеличить масштаб и то, как вы хотите увеличить их, но я думаю, что, следуя этим двум способам мышления, вы сможете получить хороший интерфейс, масштабированный на разных iPhone экранах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...