【发布时间】:2015-08-04 18:46:31
【问题描述】:
基本上我正在尝试在 inputAccessoryView 属性中创建一个调整大小的 UITextView。
我有一个 viewController,其方法 canBecomeFirstResponder 返回 true,还有一个我通过自定义类(从 XIB 获取)实例化的视图。在这个视图中是一个 UITextView。
我尝试从该类内部调整整个 inputAccessoryView 的大小。我尝试了几种方法:直接设置框架,尝试使用高度约束。它似乎只调整了一半:
这基本上是我想要的(有或没有自动布局,但在 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()
}
}
我找到了这个帖子:Changing the frame of an inputAccessoryView in iOS 8。说明正在创建一个自动创建的约束。问题是,它不会为我创造约束。绝不会禁用或启用自动布局(也通过 setTranslatesAutoresizingMaskIntoConstraints())。
【问题讨论】:
标签: ios objective-c swift inputaccessoryview