iOS Dev (59) 高度自适应的UITextView

iOS Dev (59) 高度自适应的UITextView

作者:阿锐 地址:http://blog.csdn.net/prevention

-

如下 _inputTextView 为一个 UITextView 实例。首先要设置它的 delegate,然后要在你的头文件的 interface 声明中加上 UITextViewDelegate。

_inputTextView.delegate = self;

在 implementation 中实现如下方法:

- (void)textViewDidChange:(UITextView *)textView
{
    // 获取原来的 frame
    CGRect tmpRect = _inputTextView.frame;

    CGSize size = [_inputTextView.text sizeWithFont:[UIFont systemFontOfSize:_inputTextFontSize]
                               constrainedToSize:CGSizeMake(YOUR_TEXTVIEW_WIDTH, 2000)
                                   lineBreakMode:NSLineBreakByWordWrapping];

    tmpRect.size.height = size.height + 20; // 20 points for padding
    tmpRect.origin.y = keyboardPositionY - tmpRect.size.height;

    _inputTextView.frame = tmpRect;
    _inputTextView.text = _inputTextView.text;
}
  • 注意上面的 YOUR_TEXTVIEW_WIDTH 是你的 UITextView 的宽度。
  • 注意 lineBreakMode 选 NSLineBreakByWordWrapping,比较老的版本中是 UILineBreakModeWordWrap。
  • size.height + 20 中的 20 是我留出来的 padding。
  • _inputTextFontSize 是你设置的字号高度
  • 这批那文章来自 blog.csdn.net/prevention ,转载请注明。

-

转载请注明来自:http://blog.csdn.net/prevention

你可能感兴趣的:(iOS Dev (59) 高度自适应的UITextView)