Запретите ЛЮБОЕ изменение в UICollectionView, когда появится клавиатура - PullRequest
0 голосов
/ 03 октября 2018

Я борюсь со своим UICollectionView уже почти 2 дня и не смог найти много полезной информации в интернете.Обычно люди хотят что-то прокручивать, когда появляется клавиатура.
Я хочу прямо противоположное!

Ситуация: Обычная, обычная UIView с добавлением UICollectionView в качестве подпредставления.Затем в определенном событии (нажмите кнопку navigationbar), добавляется новое подпредставление с UITextView.

По какой-то причине, collectionView, который остается под этим совершенно новым представлением, думает, что когда я щелкаю упомянутый textView, он должен сделать некоторую странную прокрутку вверх и вниз, наряду с тоннами ошибок о нарушенных ограничениях !

Я просто хочу, чтобы он остался на месте, ничего не меняя!Это даже не видно (потому что над ним совершенно новый вид, верно).

РЕДАКТИРОВАТЬ:
Мои ограничения следующие:

addConstraintsWithFormat(format: "H:|[v0]|", views: collectionView)
addConstraintsWithFormat(format: "H:|[v0]|", views: navBar)
addConstraintsWithFormat(format: "V:|-20-[v0(44)][v1]|", views: navBar, collectionView)

Вот как создается и добавляется подпредставление:

let view = UIView(frame: CGRect(x: frame.width, y: 0, width: frame.width, height: frame.height))
addSubview(view)
UIView.animate(withDuration: 0.4) {
    view.center.x -= self.frame.width
}

Часть вывода консоли:

0x10a835a00; frame = (0 0; 375 617); clipsToBounds = YES; autoresize = W+H; gestureRecognizers = <NSArray: 0x1c405f0b0>; layer = <CALayer: 0x1c4220640>; contentOffset: {0, 0}; contentSize: {1500, 617}; adjustedContentInset: {0, 0, 208, 0}>

Добавляет нижнюю вставку содержимого 208, и я понятия не имею, почему ..

Заранее спасибо!
Дейв

1 Ответ

0 голосов
/ 03 октября 2018

Решение состояло в том, чтобы переключить «самый внешний» контроллер (который включает в себя представления, которые, в свою очередь, управляют своими собственными collectionViews) с UICollectionViewController на обычный ViewController с подпредставлением lazy var collectionView и обеспечить его соответствие всем свойствам UICollectionViewController.
Так что это не был контроллер для представления коллекции, с которым у меня были проблемы, он не был связан с этими ячейками.
В моей книге это, по сути, UICollectionViewController, поэтому не знаю, почему это сработало, но сработало.
Дети, придерживайтесь UIViewControllers и UIViews для всего: D
Все эти необычные специализированные вещи, созданные Apple, иногда бывают с ошибками ....

...