【发布时间】:2014-08-29 01:25:02
【问题描述】:
我有一个 UIScrollView,其中有许多垂直排列的子 UITextView。我希望 UIScrollView 调整大小以适应内容。所以我的 TextViews 我做
- (void)textViewDidChange:(UITextView *)textView
{
CGFloat fixedWidth = textView.frame.size.width;
CGSize newSize = [textView sizeThatFits:CGSizeMake(fixedWidth, MAXFLOAT)];
CGRect newFrame = textView.frame;
newFrame.size = CGSizeMake(fmaxf(newSize.width, fixedWidth), newSize.height);
textView.frame = newFrame;
[textView setNeedsLayout];
}
对于滚动视图,我会这样做
-(void)resizeScrollViewToFitContent
{
CGRect contentRect = CGRectZero;
for (UIView *view in self.scrollView.subviews) {
contentRect = CGRectUnion(contentRect, view.frame);
}
self.scrollView.contentSize = contentRect.size;
}
我在viewDidAppear 中调用[self resizeScrollViewToFitContent]。任何想法为什么此设置不起作用?
【问题讨论】:
-
你可以将示例项目上传到 Github 吗?
-
没有。我不允许将项目上传到公共仓库。
-
只需创建一个新的示例项目,1 个带有滚动视图的视图控制器以及 textviews + 调整您所做的 textview/scrollview 大小的代码。
-
根据我的故障排除,
resizeScrollViewToFitContent无法正常工作。它不是根据其孩子的大小加起来的。随意增加。 -
我还注意到
self.scrollView.contentSize正在拒绝分配:即使我尝试为其分配一些幻数,它也会拒绝。
标签: ios iphone uiscrollview xcode5 uitextview