Какое влияние оказывают моделируемые показатели?

При использовании файлов .xib какое влияние на ваш код/​​приложение оказывает изменение симулированных показателей? Или это просто для вашей пользы в качестве инструмента предварительного просмотра?

Ответ 1

Имитированные показатели - это в основном дизайнерское пособие, которое поможет вам выстроить свой интерфейс. Они практически не влияют на .xib * [1]. Они очень полезны, потому что вы можете имитировать такие вещи, как контроллер вашего вида, встроенный в контроллер навигации, что дает вам меньше места для работы, поскольку панель навигации занимает некоторое пространство. Они также очень удобны, если вы выставляете viewController, который будет использоваться только в ландшафте. В то время, когда они были представлены, это был единственный способ проверить, как ваш интерфейс будет выглядеть на более коротком дисплее iPhone 4 и более высоком дисплее iPhone 5 * [2].

Я часто устанавливаю Размер на iPhone 4 дюйма, потому что: 1) Я нахожу работу в квадрате viewController отвлекающим, 2) Он занимает гораздо меньше экранной недвижимости, что позволяет мне видеть больше моей раскадровки на моем дисплее ноутбука. Этот метод гораздо менее опасен, если изменить класс размера на wC hR, потому что последний фактически повлияет на то, какие ограничения используются для устройств разного размера.


[1] Показатели Размер и Ориентация будут влиять на размер viewController, поскольку он хранится в файле .xib или .storyboard. Если вы оставите настройку как Inferred, Xcode будет использовать 600 x 600 в качестве размера viewController. Как правило, это не имеет никакого значения, потому что viewController будет правильно установлен на устройство при его загрузке.

[2] В то время, когда были введены Simulated Metrics, это был способ протестировать проекты для iPhone 4s против нового более высокого iPhone 5. С тех пор Apple представила другие лучшие способы проверки дизайна на устройствах различного размера.

Ответ 2

Хорошо, что изменение Simulated Metrics действительно влияет на ваше приложение очень проницательным способом. Я обнаружил, что при использовании библиотеки SwipeView и моих слайдов все повлияли на изменение размера Simulated Metric.

Под капотом, изменяющим этот размер, задается прямое значение файла nib как такового:

<rect key="frame" x="0.0" y="0.0" width="600" height="600"/>

Это значение будет размером, который запускает nib. Если мы попытаемся измерить элементы в поле зрения, появится загрузка и просмотр, мы получим ложную информацию:

// viewDidLoad
(lldb) po splashImageView
<UIImageView: 0x79913eb0; frame = (0 0; 600 600); autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0x799ca310>>


// viewWillAppear
(lldb) po splashImageView
<UIImageView: 0x79913eb0; frame = (0 0; 600 600); autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0x799ca310>>

После того, как подпрограммы компоновки сделаны, у нас есть правильный размер, но насколько это касается SwipeView, слишком поздно он уже рассчитал положение всего.

// viewDidLayoutSubviews
(lldb) po splashImageView
<UIImageView: 0x79913eb0; frame = (0 0; 768 1024); autoresize = RM+BM; userInteractionEnabled = NO; layer = <CALayer: 0x799ca310>>

Если кто-то может предоставить больше информации, мне это очень понравится.

Ответ 3

Смотреть WWDC 2015 Сессия 407 Внедрение дизайна пользовательского интерфейса в построителе интерфейсов, они говорили о Simulated Metrics

введите описание изображения здесь

Inferred

Теперь, сейчас все говорят, что они выведены. Предполагается, что в основном означает использование контекста вокруг меня. Мы знаем, что мы находимся внутри панели вкладок контроллер, мы знаем, что мы находимся внутри навигационного контроллера, поэтому интерфейс строитель знает, какой бар показывать.

Имитированные показатели

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

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