【发布时间】:2015-09-03 10:06:38
【问题描述】:
我有一个 UIToolbar,它位于 ViewController 的底部,并随着键盘向上滑动而移动到键盘的顶部。换句话说,它随着键盘移动。现在,我正在为工具栏中的 UITextView 创建一种方法,以便在用户在 textView 中键入换行符时调整其高度。到目前为止,我在课堂上使用此代码:
- (void)textViewDidChange:(UITextView *)textView
{
CGFloat fixedWidth = textView.frame.size.width;
CGFloat fixedWidthToolbar = self.navigationController.toolbar.frame.size.width;
CGSize newSize = [textView sizeThatFits:CGSizeMake(fixedWidth, MAXFLOAT)];
CGSize newSizeToolbar = [self.navigationController.toolbar sizeThatFits:CGSizeMake(fixedWidthToolbar, MAXFLOAT)];
CGRect newFrame = textView.frame;
CGRect newToolbarFrame = self.navigationController.toolbar.frame;
newFrame.size = CGSizeMake(fmaxf(newSize.width, fixedWidth), newSize.height);
newToolbarFrame.size = CGSizeMake(fmaxf(newSizeToolbar.width, fixedWidthToolbar), newSizeToolbar.height);
textView.frame = newFrame;
self.navigationController.toolbar.frame = newToolbarFrame;
}
除工具栏外,一切正常。通过工作,我的意思是 UITextView 每当添加换行符时都会增长(用户输入大量文本)。这里的问题是我没有看到工具栏像 textView 那样变大。我相信我的问题是我使用相同的代码来调整我用来调整 textview 大小的工具栏。
编辑: 这里的总体思路是允许 UITextView 和 UIToolbar 同时调整大小,允许用户看到 UITextView 中写入的文本。
我可以做些什么来实现这个目标?我做错了什么?
【问题讨论】: