2017-02-05 3 views
0

Когда я скомпилирую приложение iOS/macOS, файлы Storyboard и файлы Swift объединяются, и я вижу результат в полностью работающем приложении.Как увидеть изменения, происходящие со Storyboard при редактировании файла кода и наоборот?

Возможно ли просмотреть предварительный просмотр внешнего вида приложения, где я увижу изменения, применяемые в раскадровке, и изменения, применяемые в коде, при написании кода или редактировании раскадровки?

И можно ли увидеть изменения, применяемые в раскадровке (цвет, свойства и т. Д.), В быстром файле?

ответ

0

Я думаю, вы не совсем понимаете, как работают раскадровки, и поэтому смутили ожидания.

Раскадровка и файлы Swift не объединяются во время компиляции.

Что происходит, так это то, что UIViewController использует Storyboard для инициализации представления и всех его подзонов и установки всех свойств. Эта инициализация происходит во время выполнения. Вероятно, вы думаете, что он генерирует еще один файл Swift, который имеет код для создания всех этих представлений, что неверно.

Он также имеет соединения с вашим IBOutlets и просто присваивает ссылки на ваш класс в Swift, который позже вы можете использовать, например, для изменения цвета программно.

Есть несколько способов предпросмотра разных вещей в Xcode:

  1. Xcode позволяет просматривать вид с Interface Builder с использованием различных устройств и языков. Откройте редактор ассистента (в верхней панели, значок с двумя кругами), а затем в помощнике выберите «Предварительный просмотр». После этого вы можете добавить несколько разрешений устройств, ориентации и выбрать язык. Однако он просто отобразит представление из IB и не запустит ваш класс Swift, который подключен к представлению.

  2. Если вы создаете нестандартное представление, вы можете добавить атрибут @IBDesignable, и это сделает Xcode компилировать класс для Interface Builder и запустить некоторые его части, чтобы он выглядел, когда вы запускаете его в своем приложении. Я бы порекомендовал эту статью об этом - http://nshipster.com/ibinspectable-ibdesignable/

+0

Спасибо за ваш ответ! Я ценю это! –

Смежные вопросы