Прокрутите UICollectionViewCell Swift 3 в соответствии с выбранным UITextField - PullRequest
0 голосов
/ 30 декабря 2018

Я создал раскадровку с панелью инструментов.Кроме того, я создал UICollectionViewCell / XIB и импортировал его в раскадровку.Я добавил много UITextFields внутри UICollectionViewCell.Когда я выбираю поля UITextFields, которые находятся в нижней части экрана, экран не прокручивается, чтобы показать его.Не могли бы вы дать мне несколько советов о том, как это решить?

1 Ответ

0 голосов
/ 30 декабря 2018

Ваша клеточная высота динамическая или фиксированная?Если это исправлено, вы можете использовать трюк, подобный тому, как только текстовое поле становится активным, обнаруживает выбранную ячейку с некоторыми delegate или didSelectItemAt, затем умножает indexPath.row ячейки со свойством cellHeight, затем устанавливает contentOffsetот collectionView до этого значения, например:

// cellHeight property is something you should have declared somewhere.
collectionView.setContentOffset(CGPoint(x: 0.0, y: cellHeight * indexPath.row), animated: true)

Если решение, описанное выше, не работает, то программно получите keysHeight или установите значение, которое будет достаточно для прокрутки вверх, например, Iустановит его на 200, затем получим currentOffset, добавим ваше значение к значению y currentOffset в методе didSelectItemAt (просто для справки):

let currentOffSet = collectionView.contentOffset
let newOffset = CGPoint(x: 0.0, y: currentOffSet.y + 200.0)
collectionView.setContentOffset(newOffset, animated: true)

Это может быть лучшим решением в зависимости от вашего приложения.Но не забудьте установить offSet обратно к исходному значению, возможно, в методе resignFirstResponder с вашим textField, поэтому при каждом касании ячейки пользователь не будет вести себя странно.

...