Как добиться полного совпадения верстки приложения с макетом?

Есть макет в Figma и есть желание точь-в-точь его повторить, чтобы при сравнении скриншотов разницы не было вообще. Как можно достичь подобного на разных разрешениях экрана?

Пока такие мысли (привожу примеры с помощью SnapKit, но суть одна и та же):

  1. Величины в констрейнтах разнятся от девайса к девайсу. Например, view.snp.bottom.equalToSuperview().inset(24): согласитесь, 24 поинта на iPhone SE это не те 24 поинта, что на iPhone 12 Pro Max. Тогда можно использовать относительные величины (с помощью multipliedBy), но, кажется, это не лучшее решение. Во-первых, код становится замусорен множеством чисел с плавающей точкой (повторюсь, стоит цель полного соответствия макету), во-вторых, кажется, это дорого.

  2. Окей, если все-таки задавать констрейнты относительно: все работает, но что делать с отступами между элементами – как их задавать? Например: нужно сделать отступ в 25 pt между view и view2. Пусть view2.snp.bottom = 100. view.snp.top.equalTo(view2.snp.bottom).multipliedBy(1.25) - выглядит странно и не работает.

  3. Что делать со шрифтами? Каждый раз задавать фрейму шрифта какой-то фиксированный прямоугольник и использовать .adjustsFontSizeToFitWidth?


Ответы (0 шт):