У меня есть (3) UITextViews
, (1) UITextField
и (1) UILabel
в пределах одного UICollectionViewCell
.У меня все textViews меняются по высоте, когда текст переносится на вторую строку с функцией textViewDidChange
в расширении, соответствующем протоколу UITextViewDelegate
:
func textViewDidChange(_ textView: UITextView) {
let size = CGSize(width: frame.width, height: .infinity)
let estimatedSize = textView.sizeThatFits(size)
textView.constraints.forEach { (constraint) in
if constraint.firstAttribute == .height {
constraint.constant = estimatedSize.height
}
}
}
В идеале, всякий раз, когда любой из textViewsв моей камере увеличение высоты, я хотел бы, чтобы увеличить высоту клетки.
Я пытался поместить:
self.frame.size.height += estimatedSize.height
в раздел if constraint.firstAttribute == .height
, но это только увеличивало высоту ячейки, пока она не достигла нижней части экрана.И я бы хотел, чтобы пользователь мог вводить столько текста, сколько ему хотелось бы.
Есть ли цикл, который я должен использовать для редактирования высоты ячейки всякий раз, когда этот textViewDidChange меняет высотуtextView?
Я очень тупой, так что любая помощь будет потрясающей!Заранее спасибо!
CAVEAT:
- После многих поисков я нашел кучу ответов, которые показывают, как динамически увеличивать высоту ячейки.Тем не менее, я не знаю, как сделать уникальные клетки в пределах
UICollectionView
.Если наиболее элегантным решением здесь является помещение всех textViews, textField и метки в уникальные ячейки, пожалуйста, покажите мне, как это сделать!