我有一个带有滚动视图,标题,副标题,图像和描述的视图。 像这样:
我将在descriptionTextview中显示从我的服务器下载的一些文本(可能是几行或多行)。我将滚动所有视图,而不仅仅是texview,因为视图的大部分都忙于其他元素。 像这样:
我取消选中textView中的“scrolling enable”,并在View Controller属性检查器中将size属性更改为“Freeform”。 由于我将textView添加到我的viewController,因此scrollView不会滚动。 如何在滚动视图中显示textview的所有文本?
我尝试在viewDidLoad
中添加这些行,以便以编程方式更改textview和scrollview的大小,但它不起作用。
[self.scrollView setScrollEnabled:YES];
CGRect frame = self.descriptionTextView.frame;
frame.size.height = self.descriptionTextView.contentSize.height;
self.descriptionTextView.frame = frame;
[self.scrollView setContentSize:(CGSizeMake(320,480+self.descriptionTextView.frame.size.height))];
NSLog(@"tv height %f", self.descriptionTextView.frame.size.height);
提前谢谢。
编辑:
由于
答案 0 :(得分:1)
您需要将scrollview内容化方法移至viewdidappear而不是viewdidload
答案 1 :(得分:1)
我不知道原因,但导航控制器的animation:YES
是 [self.navigationController pushViewController:myNextViewController animated:
的属性];
是问题!!!!!
我删除了storyboard的segue,我写了[self.navigationController pushViewController:myNextViewController animated:NO];
,现在它正在工作!!!
如果有人可以给我一个解释,那就太好了。 感谢
编辑:需要textview身高> scrollview height,在storyboard中设置10000:
编辑2:问题仍然存在!我打电话给self.myTextView.text = @"someStringText"
,我可以看到所有文字,但视图滚动很长:像10.000!所以这个方法没有以编程方式设置高度:(未经检查的正确答案。任何人都可以回答这个问题吗?
谢谢
编辑3:解决方案最后,我想我得到了解决方案:在-(void)viewDidAppear:(BOOL)animated;
我用self.descriptionTextView.text = content.text; //long long text
以编程方式设置文本,然后我调用[self textViewDidChange:self.descriptionTextView];
- (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;
//VERY IMPORTANT: without this, user can scroll scrollView and textview!
[textView setUserInteractionEnabled:NO];
}
在故事板中,未选中复选框use Autolayout
。
答案 2 :(得分:0)
您是否有使用文字视图而非标签的特殊原因?由于文本视图是滚动视图,并且在滚动视图内部具有滚动视图是有问题的,您是否可以通过使用UILabel并将行数设置为0来轻松解决问题,以使其增长以适合您的内容?
(抱歉,我没有足够高的代表将此添加为评论。)