【发布时间】:2012-10-13 01:08:41
【问题描述】:
我有一个UITextView,它从 RSS 提要动态设置其文本。 textview 是UIScrollview 的子视图。最终,我正在创建一个移动报纸应用程序,因此用户应该能够滚动浏览文本(和其他子视图)。
在 IB 中创建视图后,我添加了
NSString *sourceCode = [NSString stringWithContentsOfURL:[NSURL URLWithString:self.URL] encoding:NSUTF8StringEncoding error:&error];
sourceCode = [self parseHTMLText:sourceCode];
CGSize maximumLabelSize = CGSizeMake(320,9999);
CGSize txtStringSize = [sourceCode sizeWithFont:self.body.font
constrainedToSize:maximumLabelSize];
CGRect newlblFrame = CGRectMake(0, 0, 320, txtStringSize.height);
self.body.frame = newlblFrame; //body is the textview
self.body.text = sourceCode;
self.scroll.contentSize=CGSizeMake(320, self.body.frame.size.height+300); //scroll is scrollview
典型的NSLog 将显示body frame = {{0, 0}, {320, 2088}} scrollview frame = {{0, 0}, {320, 417}} scrollview content size = {320, 2388}
但是,当我运行应用程序时,body 将其界面构建器高度保持在 196 左右,并且滚动视图不会滚动(当我移动它时,它只是弹回原来的位置)
附带说明,当我尝试使用 CGRectMake 手动更改 textview 的框架时,NSLog 显示正确的高度,但视图看起来并没有什么不同。我确保它在 IB 中正确连接,因为我可以调整其他属性,例如背景颜色。
编辑:
在我将 textview 的 cliptoBounds 属性设置为 NO 后,textview 现在会调整其高度并尝试显示整个文本。但是,它在屏幕末尾切断,我仍然无法滚动。
这是我目前看到的。为了方便起见,我将滚动视图的背景颜色设为灰色。我不确定为什么部分滚动视图部分为白色,部分为灰色。 (标题)是一个单独的标签)
【问题讨论】:
-
在 UIlabel 上打印文本后更改滚动视图 contentSize。我认为它应该可以解决您的问题。
-
我尝试在body.text = ...之后添加它,但结果是一样的
-
在代码中再添加一行:self.body.numberOfLines = 0; self.by.frame = newlblFrame 之后;我也在编辑上面的代码。
-
让我知道它是否有效。
-
我已经在界面生成器中设置了,但我也尝试在代码中添加它。结果相同
标签: objective-c ios uiscrollview uilabel