UIKit
http://telegra.ph/UIKit-09-141. Чем отличаются 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
динамически изменяет интерфейс в зависимости от внешних или внутренних изменений