TPKeyboardAvoidingScrollView
在阻止键盘阻止UITextViews
方面一直非常有用:但仅当UITextViews
的大小为静态时。现在,我正在尝试改进设计,以使UITextViews
的高度随内容的增长而增加,因此TPKeyboardAvoidingScrollView
不会随着容纳不断增长的UITextViews
而增长。这里有没有人曾经成功地将TPKeyboardAvoidingScrollView
用于增长UITextViews
?对于布局,我只使用“重置为建议的约束”。
我的特殊情况是UITextViews
可以增长,因此父级需要增长到超出设备的尺寸才能显示所有UITextViews
。目前还没有发生。一旦UITextView
增长了,它只会扩展到其他视图之外,因此我看不到其他视图。
更新
以下是我用来调整UITextViews大小的代码。除此之外,我的代码中没有任何重要意义。我照常在StoryBoard中构建所有内容。我将子视图拖放到适当的位置:5个imageView,两个textView和三个标签。在viewController .m
文件本身中,我正在使用以下委托方法代码:
- (BOOL) textView:(UITextView *)textView shouldChangeTextInRange:(NSRange)range replacementText:(NSString
*)text { [self resizeTextViewToFitContent:textView]; }
- (void)resizeTextViewToFitContent:(UITextView *)textView {
CGRect frame = textView.frame;
frame.size.height=[self heightOfTextView:textView]+5;
textView.frame=frame; }
-(CGFloat)heightOfTextView:(UITextView *)textView {
CGRect reviewTextFrame = [textView.attributedText boundingRectWithSize:CGSizeMake(textView.bounds.size.width, MAXFLOAT)
options:NSStringDrawingUsesLineFragmentOrigin
context:nil];
return CGRectGetHeight(reviewTextFrame); }
最佳答案
我认为您应该更新scrollView
的内容大小。否则,我看不到TPKeyboardAvoidingScrollView
如何知道您正在增加内容大小。您应该具有与此类似的方法:
-(void) updateContentSize: (CGSize *) newSize {
self.scrollView.contentSize = newSize;
}
并在每次更新
UITextView
的大小时调用它。关于ios - subview (UITextView)展开时TPKeyboardAvoidingScrollView不展开,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28132014/