Size: a a a

iOS Developers — русскоговорящее сообщество

2021 March 26

А

Александр in iOS Developers — русскоговорящее сообщество
народ, привет, подскажите, как исправить эпловский баг с collectionView.scrollToItem
источник

А

Александр in iOS Developers — русскоговорящее сообщество
пробовал разные варианты, нашел один перед вызыванием функции scrollToItem делать layoutIfNedded() но при этом он скроллится не совсем ровно
источник

VC

Vladislav Chugunkin in iOS Developers — русскоговорящее сообщество
Александр
народ, привет, подскажите, как исправить эпловский баг с collectionView.scrollToItem
В чем баг-то?
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
=)
источник

А

Александр in iOS Developers — русскоговорящее сообщество
Vladislav Chugunkin
В чем баг-то?
если не делать layoutIfNeeded() то вообще не скролится к item.  если делать, то скролит не ровно к itemу а c "заездом" на следующий
источник

А

Александр in iOS Developers — русскоговорящее сообщество
private func setupCollectionView() {
       contentView.collectionView.delegate =
self
       contentView.collectionView.dataSource =
self
       
if let layout = contentView.collectionView.collectionViewLayout as? UICollectionViewFlowLayout {
           layout.scrollDirection  = .horizontal
       }
   }
   
   
private func scrollToCurrentItem() {
       
guard let indexPath = getCurrentMediaIndexPath(fromMedia: messages, currentMessage: currentMessage) else { return }
       contentView.collectionView.layoutIfNeeded()
       contentView.collectionView.scrollToItem(at: indexPath, at: .right, animated:
false)
       contentView.collectionView.isPagingEnabled =
true
   }
источник

VC

Vladislav Chugunkin in iOS Developers — русскоговорящее сообщество
Александр
если не делать layoutIfNeeded() то вообще не скролится к item.  если делать, то скролит не ровно к itemу а c "заездом" на следующий
Впервые с таким сталкиваюсь, все хорошо работает :)
источник

А

Александр in iOS Developers — русскоговорящее сообщество
Vladislav Chugunkin
Впервые с таким сталкиваюсь, все хорошо работает :)
источник

VC

Vladislav Chugunkin in iOS Developers — русскоговорящее сообщество
У меня все ок на всех осях, хз о чем это, сори)
источник

Ԥ

ԤИОНЕР in iOS Developers — русскоговорящее сообщество
Товарищи, я понимаю, что это уже неактуально, но всё же: есть у кого-нибудь инвайт для клабхауса? 😊
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
Александр
private func setupCollectionView() {
       contentView.collectionView.delegate =
self
       contentView.collectionView.dataSource =
self
       
if let layout = contentView.collectionView.collectionViewLayout as? UICollectionViewFlowLayout {
           layout.scrollDirection  = .horizontal
       }
   }
   
   
private func scrollToCurrentItem() {
       
guard let indexPath = getCurrentMediaIndexPath(fromMedia: messages, currentMessage: currentMessage) else { return }
       contentView.collectionView.layoutIfNeeded()
       contentView.collectionView.scrollToItem(at: indexPath, at: .right, animated:
false)
       contentView.collectionView.isPagingEnabled =
true
   }
есть тестовый пример?
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
я почти уверен что проблема не на стороне эпла
источник

А

Александр in iOS Developers — русскоговорящее сообщество
ну я вон написал сверху код, если сделать такие настройки, то не работает scrollToitem
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
дык там же ничего нет
источник

VC

Vladislav Chugunkin in iOS Developers — русскоговорящее сообщество
где вызываются setupCollectionView и scrollToCurrentItem?
источник

А

Александр in iOS Developers — русскоговорящее сообщество
override func viewDidLoad() {
       
super.viewDidLoad()
       setupCollectionView()
       setupNavigationBar()
       scrollToCurrentItem()
       contentView.delegate =
self
   }
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
блин я вот не поленюсь сейчас 1 в 1 код скопирую, добавлю остальное и все будет работать
источник

VC

Vladislav Chugunkin in iOS Developers — русскоговорящее сообщество
Перенеси scrollToCurrentItem во viewDidAppear, посмотри)
источник

DK

Denis Kim in iOS Developers — русскоговорящее сообщество
зачем вы утверждаете что это баг эпла, если вы даже тестовый пример не можете сделать чтобы показать что он есть?
источник

А

Александр in iOS Developers — русскоговорящее сообщество
Denis Kim
блин я вот не поленюсь сейчас 1 в 1 код скопирую, добавлю остальное и все будет работать
да на здоровье 🙂 чего злиться то, я ж пишу, не потому что наипать всех хочу
источник