Часть 2 состоит из вопросов интервью Swift iOS и ответов о пользовательском интерфейсе — Auto layout и UIKit. Она будет охватывать темы, связанные с пользовательским интерфейсом, такие как фрейм, bound, autolayout constraints, xib, storyborad, safe area и т. д.
Что такое bounding box?
bounding box — это наименьший прямоугольник, полностью охватывающий все точки пути, включая контрольные точки для кривых Безье и квадратичных кривых.
Что такое CGpath?
Неизменяемый графический путь: математическое описание форм или линий, которые должны быть нарисованы в графическом контексте.
Вам нужна weak or unowned анимация UIView?
слабая или бесхозная личность используется для предотвращения циклов сохранения. После запуска анимации UIView память освобождается, даже если на нее строго ссылаются. Слабый и бесхозный не нужен для блока кода анимации. Вам не нужно использовать [weak self] в статической функции UIView.animate(). Вам нужно использовать weak, когда возможен цикл сохранения и блок анимации не сохраняется самим собой. Ссылка на внешний объект, захваченная ими, будет храниться только в течение определенного периода времени, что означает, что она будет выполнена в определенный момент времени. После этого он будет освобожден, поэтому не будет возможности цикла ссылок, который приведет к утечке памяти.
В чем разница между frame и bounds?
Фрейм представляет собой прямоугольник, который имеет положение и размер относительно суперпредставления. С другой стороны, границы — это прямоугольник, положение и размер которого зависят от его собственной системы координат.
Когда следует использовать frame/bounds?
Фрейм связывает расположение вида в его родительском виде. Его можно использовать, когда вы вносите внешние изменения, например, изменяете его ширину или находите расстояние между видом и верхом/низом/слева/справа его родительского вида.
С другой стороны, вы можете использовать границы, когда вносите внутренние изменения, например рисуете элементы или размещаете подпредставления в представлении. Вы также можете использовать границы, чтобы получить размер представления, если вы выполняете какое-либо преобразование границ.
Что такое внутренний размер контента?
Все представления имеют внутренний размер содержимого, который относится к объему пространства, необходимого представлению для отображения его содержимого в идеальном состоянии. Например, внутренний размер содержимого UILabel будет размером текста, который он содержит, с использованием любого шрифта, который вы настроили для использования.
В чем разница между xib и storyboard?
Xib определяет один экран представления или контроллера представления, в то время как storyboard показывает множество контроллеров представления, а также показывает взаимосвязь между ними.
В чем разница между layout margins и directional layout margins?
Свойство полей макета UIView имеет тип UIEdgeInsets и определяет верхнюю, левую, нижнюю и правую вставки, которые при применении к фрейму представления определяют поля представления.
Направленные поля макета, поддерживающие языки справа налево (RTL). Это соответствует шаблону, используемому при создании ограничений с якорями макета.
Что такое Safe area?
Safe area позволяет нам создавать ограничения, чтобы наш контент не был скрыт аппаратными панелями iOS.
Что такое content offset?
Когда мы прокручиваем scrollView, он изменяет свойство, известное как смещение содержимого. Используя это значение, scrollView может вычислить свои новые границы и перерисовать любое из своих подпредставлений.
Что такое NSLayoutAnchor?
NSLayoutAnchor используется для упрощения написания автоматического макета в коде.
Что такое UIBezierPath?
Мы можем определить собственный путь с помощью UIBezierPath для создания любой формы.
Что такое reuseIdentifier в UITableView/UICollectionView?
ReuseIdentifier указывает, что ячейки для UITableView (или UICollectionView) можно использовать повторно. UITableView поддерживает внутренний кеш UITableViewCell с соответствующим идентификатором и позволяет повторно использовать их при вызове dequeueForCellWithReuseIdentifier. В результате это повышает производительность UITableView, поскольку для ячейки не нужно создавать новое представление.
Уважаемые разработчики iOS, имейте в виду
При подготовке к собеседованию важно помнить о нескольких ключевых моментах. Во-первых, стоит отметить, что в разделе интервью доступно более 1000 вопросов для интервью, которые вы можете просмотреть и подготовиться. Читая вопрос, найдите время, чтобы тщательно обдумать свой ответ и обдумать информацию, которую вы хотите передать. Ответ, представленный здесь, в этом блоге, можно объяснить по-другому. Вы также должны подготовить свои примеры.
Также важно помнить, что эти вопросы на собеседовании не должны быть трудными. Интервьюер не хочет бросить вам вызов, а хочет начать разговор, который позволит вашим способностям и интересам выйти на первый план. Они хотят лучше узнать вас и ваш опыт.
Наконец, очень важно избегать простых ответов «да» или «нет». Интервьюеры ищут более подробные ответы, которые включают базовое понимание, рассуждение, объяснение и примеры. Итак, постарайтесь уточнить свои ответы и предоставить конкретную актуальную информацию в поддержку вашего ответа. Это продемонстрирует вашу внимательность и покажет интервьюеру, что вы хорошо подготовились к интервью.