我已经从IB创建了一个UIWebView,并根据我的需要进行了子类化。在我的应用程序中的某个地方,我使用以下代码:
_mainWebView = nil;
_mainWebView = [[MyWebView alloc] initWithFrame:CGRectMake(0,0,320,460)];
_mainWebView.delegate = self;
NSURL *url = [NSURL URLWithString:@"http://www.google.com"];
NSURLRequest *request = [NSURLRequest requestWithURL:url];
[_mainWebView loadRequest:request];
NSLog(@"WebView: %@", _mainWebView); //->> WebView: <MyWebView: 0x15403000; baseClass = UIWebView; frame = (0 0; 320 548); layer = <CALayer: 0x1544dac0>>
这给了我一个没有内容的黑屏。
答案 0 :(得分:1)
这很可能是因为你将_mainWebView设置为nil。这几乎意味着你“拔掉”你从Interface Builder连接的插座。因此,您在此代码中配置的Web视图根本没有连接到屏幕。您可以选择两个选项:
1)使用Interface Builder,连接插座,并删除上面代码段中的前两行代码。
2)从Interface Builder中删除Web视图,删除上面代码段中的第一行代码,然后在加载请求之前添加[self.view addSubview:_mainWebView];
。
顺便说一下,我认为UIWebView不是子类,至少在App Store版本中是这样。在未来的iOS中它可能会破坏......
我希望这可以帮到你!
答案 1 :(得分:1)
_mainWebView = [[MyWebView alloc] initWithFrame:CGRectMake(0,0,320,460)];
上面的代码行告诉你创建一个新的MyWebView,所有来自IB的挂钩都将断开连接。 您可以通过以下方式显示:
[self.view addSubview:_mainWebView];
如果您从IB绘制并挂钩,只需注释掉init一个新的
答案 2 :(得分:0)
我遇到了同样的问题,
我的问题是,我放在故事板上的网页视图正在跨越视图控制器的边框。 当我把它拉回视图控制器时它工作正常。