我看了很多類似這樣的問題,但儘量嘗試,我不能讓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似乎也喜歡它,並顯示文件的頂部部分很好。我只是無法滾動它來查看以後的內容。如果我將字體縮小或「縮放到合適」,那麼我還可以看到更多(或全部)文件。 –