UIKit

UIKit

http://telegra.ph/UIKit-09-14


1. Чем отличаются bounds и frame?


frame = a view's location and size using the parent view's coordinate system

  • Important for: placing the view in the parent

bounds = a view's location and size using its own coordinate system

  • Important for: placing the view's content or subviews within itself


2. Как работает UITableView?


Ячейки таблицы, которые больше не отображаются на экране, не выбрасываются из памяти. Их можно использовать повторно, указав идентификатор в процессе инициализации. Когда ячейка, отмеченная для повторного использования, пропадает с экрана, UITableView помещает ее в очередь для повторного использования в дальнейшем. Когда dataSource запрашивает у UITableView новую ячейку и указывает идентификатор, UITableView сначала проверяет очередь ячеек для повторного использования на предмет наличия необходимой. Если ячейка не была обнаружена, то создается новая, которая затем передается dataSource


let cell = tableView.dequeueReusableCell(withIdentifier: "cellTitle", for: indexPath)



3. Разница между points и pixels ?


Pixels (px) - точки на экране.

Points (pt) - плотность точек на экране.



4. Как поймать неприятный лаг? На что обращать внимание ?


Есть приложение с таблицей. В процессе скроллинга периодически наблюдаются легкие притормаживания. Тестировщики не выявили явной закономерности, но проблема регулярно встречается.

Причиной торможения может быть:

  • Перегруженный main thread
  • Инстанциирующиеся ячейки. Если у вас таблица состоит больше, чем из одного вида ячеек, то при отсутствии в очереди нужной, она сначала создастся, это требует ресурсов. Особенно при разархивации из nib
  • Все касающееся прорисовки, подсчет высоты и переиспользуемые ресурсы



5. Autolayout


Auto Layout занимается динамическим вычислением позиции и размера всех view в иерархии, на основе constraints — правил заданных для того или иного view. Самый большой и очевидный плюс для разработчика в использовании Auto Layout в том, что исчезает необходимость в подгонке размеров приложения под определенные устройства — Auto Layout динамически изменяет интерфейс в зависимости от внешних или внутренних изменений



Report Page