Я считаю, что вы пытаетесь сделать следующее:
func autoScroll(time: DispatchTimeInterval, indexItem: Int = 1) {
DispatchQueue.main.asyncAfter(deadline: .now() + time) {
cell._collectionView.scrollToItem(at: IndexPath(row: indexItem, section: 0), at: .centeredHorizontally, animated: true)
autoScroll(time: time, indexItem: indexItem + 1)
}
}
autoScroll(time: .seconds(3))
Просто передайте значение функции.
Вам действительно нужен какой-нибудь флаг, который остановит это.Как написано, это гарантирует, что cell
никогда не будет выпущен.И если несколько ячеек запускают это, то это определенно вызовет проблему, с которой они будут бороться.Я ожидаю, что это будет выполняться непосредственно в представлении коллекции, а не в ячейке.