我需要在iOS上创建可滚动的复合视图。也就是说,视图将至少包含一个图像(可能是一个按钮)和一些文本(我们可能希望使用加粗字体等格式)。数据量(尤其是文本量)是可变的,可能在4行到100行之间。数据在一定程度上是“可变的”,并且尤其是图像和文本不会在臀部融合在一起。

所有这些都需要以仅纵向布局适合大约280h x 115w像素的“窗格”。

单个UITextView不提供显示图像或格式化文本的功能。

UIWebView可以显示图像和带格式的文本,但是按钮是个问题(甚至不确定是否可行)。

UIScrollView可以轻松地允许图像和按钮,然后将UIWebView嵌入文本的滚动视图中,但是滚动成为一个问题-我希望整个视图可以滚动为一个,而不必调整其大小Web视图包含它的内容,并且不会在可滚动对象中混淆可滚动对象(文档警告“意外行为”)。

(我猜测此时您的想法是我想要太多。)

那么,有什么建议吗?接近我这里所需的最佳方法是什么?

最佳答案

我建议在您的UIWebView内部使用UIScrollView进行测试。我没有在iOS 5.0模拟器中看到任何干扰。我不知道iOS 4.0中是否有问题。

如果发现存在干扰,可以通过在笔尖或代码中将Web视图的userInteractionEnabled属性设置为NO来防止干扰。这将阻止Web视图接收任何触摸,因此用户也将无法进行捏缩放,跟踪其中的链接或从中复制文本。

在Web视图的委托中,实现webViewDidFinishLoad:来设置Web视图的大小和滚动视图的contentSize。例如:

- (void)webViewDidFinishLoad:(UIWebView *)webView {
    CGRect frame = self.webView.frame;
    frame.size = [self.webView sizeThatFits:CGSizeMake(frame.size.width, HUGE_VALF)];
    self.webView.frame = frame;
    self.scrollView.contentSize = CGSizeMake(CGRectGetMaxX(frame), CGRectGetMaxY(frame));
}

关于objective-c - 在iOS上创建复合可滚动 View 的最佳方法是什么,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8885809/

10-11 03:45
查看更多