TPKeyboardAvoidingScrollView
一直在努力防止键盘阻止我的UITextViews
:但仅当UITextViews
的大小是静态的时。既然我正在尝试改进我的设计以使UITextViews
的高度与内容一起增长,那么TPKeyboardAvoidingScrollView
并不会增长以适应不断增长的UITextViews
。有没有人在TPKeyboardAvoidingScrollView
成功使用UITextViews
?对于布局,我只使用“重置建议约束”。
我的具体情况是,UITextViews
可以增长,以便父级需要超越设备的维度才能显示所有UITextViews
。目前还没有发生。一旦UITextView
增长,它就会延伸到其他视图之外,以便我看不到其他视图。
更新
以下是我用来调整UITextViews大小的代码。除此之外,我的代码中没有任何重要内容。我按照正常情况在StoryBoard中构建所有内容。我将子视图拖放到位:5个imageViews,两个textViews和三个标签。在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); }
答案 0 :(得分:1)
我认为您应该更新scrollView
的内容大小。否则,我不知道TPKeyboardAvoidingScrollView
应该如何知道您正在增加内容大小。你应该有一个类似的方法:
-(void) updateContentSize: (CGSize *) newSize {
self.scrollView.contentSize = newSize;
}
并在更新UITextView
的大小时调用它。
答案 1 :(得分:0)
好的,如果您对scrollView
内的UITextViews布局有疑问,那么您必须使用AutoLayout,并在此问题上阅读Apple's Technical Note。该链接解释了为什么在scrollView
内使用AutoLayout可能很棘手,并提出了两种实现方法。希望这会有所帮助。