使用未定义的框架设置webView(程序化布局)

时间:2015-02-05 20:55:37

标签: ios objective-c xcode

所以我试图将HTML字符串加载到iOS上的Web视图中(通过loadHTMLString:baseURL:]

我想像这样定义我的webView:

- (UIWebView *)webView {

if (!_webView) {

    _webView = [UIWebView new];
    _webView.translatesAutoresizingMaskIntoConstraints = NO;
    _webView.backgroundColor = [UIColor clearColor];
    _webView.allowsInlineMediaPlayback = YES;
    _webView.mediaPlaybackRequiresUserAction = YES;
    _webView.delegate = self;

    [self.contentView addSubview:_webView];
}
return _webView;
}

我需要它出现在子视图中,因为我希望其他内容出现在同一个视图中。问题是,什么都没有出现。我已经测试了一些东西:

除了滚动视图,其中的内容视图和Web视图(使用constraintWithVisualFormat,constraintWithItem和延迟加载)之外,我清除了视图。什么都没有出现。

然后我尝试清除所有内容并用_webView = [[UIWebView alloc] initWithFrame:self.view.frame]替换_webView = [UIWebView new]; 这很有效。尽管如此,它并没有解决我的问题,因为我想在一个视图下面有多个东西。

那么,如果我无法将框架定义为整个视图,那么如何才能显示webView?

1 个答案:

答案 0 :(得分:0)

你所描述的是完全可能的。也许你是以错误的方式添加约束,或者你的webview的大小不是100%。

我建议您使用库来处理约束,这更加直观且不易出错。例如,您可以考虑PureLayout