Về cơ bản tôi đang cố gắng tạo một UITextView thay đổi kích thước trong một thuộc tính inputAccessoryView.Thay đổi kích thước inputAccessoryView động trong iOS 8
Tôi có chế độ xemController với phương thức canBecomeFirstResponder trả về true và chế độ xem tôi khởi tạo qua lớp tùy chỉnh (nhận được từ XIB). Trong chế độ xem này là một UITextView nằm.
Tôi cố gắng thay đổi kích thước đầu vào đầy đủAccessoryView từ bên trong lớp đó. Tôi đã thử theo một vài cách: đặt khung trực tiếp, cố gắng sử dụng giới hạn chiều cao. Có vẻ nó thay đổi kích thước chỉ bằng một nửa chiều:
này về cơ bản là những gì tôi muốn (có hoặc không có autolayout, nhưng làm việc trong 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()
}
}
Tôi đã tìm thấy bài đăng này: Changing the frame of an inputAccessoryView in iOS 8 . Nói rằng một ràng buộc được tạo tự động đang được tạo ra. Vấn đề là, nó không tạo ra ràng buộc đối với tôi. Không có cách nào, với tính năng tự động tắt hoặc bật tính năng tự động điền (cũng thông qua setTranslatesAutoresizingMaskIntoConstraints()).
Tác vụ này thực sự, nhưng trong trường hợp của tôi, tôi tải chế độ xem từ một NIB. Tôi thực sự muốn tải chế độ xem từ tệp NIB thay vì tạo chế độ xem theo chương trình. – Wesley
@Wesley Tôi đã chỉnh sửa. xin vui lòng cho tôi biết nếu nó hoạt động – Bannings
Có nó hoạt động, nó thực sự sucks bạn phải hack xung quanh thiết lập chiều cao với một hạn chế riêng! Tôi sẽ chấp nhận nó là chính xác cho bây giờ, có lẽ có một giải pháp tốt hơn cho nó. – Wesley