我看了很多类似这样的问题,但尽量尝试,我不能让UIWebView
以任何方式滚动或交互。下面是代码:为什么UIWebView不滚动?
- (void)loadView {
[super loadView];
...
[self.displayView loadHTMLString:entry->infoHtml baseURL:nil];
}
- (void)viewDidLoad
{
[super viewDidLoad];
self.displayView.userInteractionEnabled = YES;
self.displayView.scrollView.showsVerticalScrollIndicator = YES;
self.displayView.scrollView.scrollEnabled = YES;
[self.displayView.scrollView flashScrollIndicators];
}
出现视图,显示了所有正确的内容,并且示出了垂直滚动条用于第二,正确地表示当前显示的内容的一部分。
但我不能滚动它。触摸内容并移动我的手指根本没有任何影响。与同一家长下不重叠的UITableView
进行互动可以正常工作;触摸条目将更新UIWebView
的内容,因为它已被编程。
的一个UIWebView在使用这些选项的故事板创建:
- 尺度以适合:选中(选中时,不能捏到变焦,无论是)
- 分页:unpaginated
- 模式:方面适合(尝试了几种;所有未滚动)
- UserInteractionEnabled:检查(父视图也有此检查)
该视图是完全可见的。我试图让它显着小于其父,并且显示的内容总是停在正确的位置。这个视图没有委托或手势识别器。
包含视图有一个UITableView
和一个UILabel
,它们都没有重叠UIWebView
的区域。我试图改变故事板上场景中的视图顺序,但这也没有什么区别。
我试图去除UIBuilder视图和编程方式创建它像这样:
self.displayView = [[UIWebView alloc] initWithFrame:CGRectMake(400, 220, 400, 300)];
[self.view addSubview:self.displayView];
相同的结果。我尝试删除场景中的所有其他元素,除了这个以编程方式创建的UIWebView。仍然是相同的结果。
其他地方在我的代码,我已经把UIWebView
为UIAlertView
的@"accessoryView"
有预期我可以滚动的内容。
是否还有其他事情需要完成才能够滚动UIWebView子视图?
二零一四年四月二十零日:事实上,如果我下面的行添加到我的-loadView
方法的底部,我得到了相同的HTML内容,因为它背后的窗口对话框,但我上午能够滚动对话框版本。我能想到的唯一区别是对话框是模态(强制焦点),而我自己的窗口同时使用UITableView
和UIWebView
仍允许与其后面的可见视图进行交互。
UIWebView* contents = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 250, 250)];
[contents loadHTMLString:entry->infoHtml baseURL:nil];
[alertView setValue:contents forKey:@"accessoryView"];
[alertView show];
在另一方面,如果我取代最后两行与[self.view addSubview:contents];
然后我得到在屏幕的左上角相同的第二HTML视图,但将不滚动。
奇怪!我添加UIWebView,它可以正常滚动。这个webView的内容太短了,导致你无法滚动。让我们尝试在另一个项目中添加UIWebView并进行测试。 – nmh
如果您在移动Safari浏览器中运行,您是否验证过您尝试使用的HTML? – aeskreis
我试过几种不同的HTML文件,所有这些文件在浏览器中都显示得很好。我的UIWebView似乎也喜欢它,并显示文件的顶部部分很好。我只是无法滚动它来查看以后的内容。如果我将字体缩小或“缩放到合适”,那么我还可以看到更多(或全部)文件。 –