В основном я пытаюсь создать изменение размера UITextView в свойстве inputAccessoryView.
У меня есть viewController с методом canBecomeFirstResponder, возвращающим true, и представление, которое я создаю через пользовательский класс (который получает его из XIB). В этом представлении находится UITextView.
Я пытаюсь изменить размер inputAccessoryView изнутри этого класса. Я попробовал несколько способов: установив рамку directy, попробуйте использовать ограничение по высоте. Кажется, он изменяется только наполовину:
Это в основном то, что я хочу (с автозапуском или без него, но работающий в iOS 7/8 +):
class MessageInputAccessory: UIView, UITextViewDelegate
{
@IBOutlet weak var textView: UITextView!
func textViewDidChange(textView: UITextView)
{
var contentSize = textView.sizeThatFits(CGSizeMake(textView.frame.size.width, CGFloat.max))
self.frame.size.height = contentSize.height + 20
self.textView.reloadInputViews()
}
}
Я нашел этот пост: Изменение фрейма inputAccessoryView в iOS 8. Заявляя, что создается автоматически созданное ограничение. Дело в том, что это не создает ограничения для меня. Ни в коем случае, если автозапуск отключен или включен (также через setTranslatesAutoresizingMaskIntoConstraints()).