Специализация
Python Backend Developer
Java Backend Developer
Node.js Backend Developer
Golang Backend Developer
React Frontend Developer
Выберите навыки
React
JavaScript
Git
Redux
Webpack
Сложность
1-3
4-6
7-8
9-10
Рейтинг вопросов
1
2
3
4
5
Подпишись на React Developer в телеграм
Какие отличия между UITableView и UICollectionView?
UITableView предназначена для вертикального списка однотипных ячеек, поддерживает секции и простые заголовки. UICollectionView — более гибкая, позволяет располагать ячейки в любых сетках или персонализованных компоновках через UICollectionViewLayout, поддерживает горизонтальный скролл, многострочные ряды, кастомные layout.
В чем причина мерцания и подмены изображений в UICollectionView при быстром скролле?
Мерцание и подмена изображений возникают из-за переиспользования ячеек в сочетании с асинхронной загрузкой картинок. Когда пользователь быстро скроллит, одна и та же ячейка может быть привязана к разным данным. Если старый запрос загрузки изображения завершится позже, он может установить картинку уже в новую ячейку. В результате появляется неправильное изображение или визуальное мигание. Проблема усиливается при отсутствии сброса состояния ячейки.
Как работает механизм переиспользования ячеек в UICollectionView?
UICollectionView переиспользует ячейки, чтобы не создавать новые объекты при каждом скролле. Когда ячейка уходит за экран, она помещается в очередь переиспользования. При необходимости система берет существующую ячейку и переназначает ей новые данные. Это значительно снижает нагрузку на память и CPU. Однако разработчик обязан корректно обновлять содержимое ячейки.
Где лучше отменять асинхронную загрузку — в prepareForReuse или в lifecycle UICollectionView?
Чаще всего загрузку отменяют в prepareForReuse, так как это гарантированная точка переиспользования. Lifecycle методы UICollectionView дают больше контекста, но используются реже. prepareForReuse проще и надежнее для базовых случаев. Иногда применяют оба подхода. Выбор зависит от архитектуры.
Рейтинг:
2
Сложность:
6
Рейтинг:
5
Сложность:
6
Рейтинг:
5
Сложность:
4
Рейтинг:
4
Сложность:
6