Я провел несколько дней на этом без какого-либо решения.
У меня есть inputAccessoryView
, который состоит из UIView
, содержащего a textView
и две кнопки. Поведение inputAccessoryView
соответствует ожиданиям и отлично работает во всех случаях, кроме одного.
Когда высота textView увеличивается, я пытаюсь увеличить высоту inputAccessoryView
на ту же сумму. Когда я переопределяю высоту inputAccessoryView
в textViewDidChange
, inputAccessoryView
увеличивает высоту вниз по клавиатуре, а не вверх.
Я пробовал много разных предложений от SO, но ничего не сработало. Я предполагаю, что это автоматически добавлено NSLayoutConstraint
для inputAccessoryView
, но я понятия не имею, как изменить это значение в swift и iOS 8.3.
func textViewDidChange(textView: UITextView) {
var contentSize = messageTextView.sizeThatFits(CGSizeMake(messageTextView.frame.size.width, CGFloat.max))
inputAccessoryView.frame.size.height = contentSize.height + 16
}
добавление
inputAccessoryView.setTranslatesAutoresizingMaskIntoConstraints(true)
к приведенному выше коду помогает, и высота входных данных возрастает вверх правильно, но я получаю Невозможно одновременно удовлетворить ограничения для нескольких ограничений, и очень сложно идентифицировать нарушителей. Также я получаю нечетный эффект textView, создающий дополнительное пространство ниже для каждого второго экземпляра новой строки.
спасибо.