我有一个自定义的UIView子类实例headerView,将其放在UIWebView的scrollView中。初始化时,我将此视图的背景色设置为白色:
self.backgroundColor = [UIColor whiteColor];
这就是我将其放在webView的scrollView上的方式:
webView.scrollView.contentInset = UIEdgeInsetsMake(headerView.bounds.size.height, 0, 0, 0);
CGRect frame = headerView.frame;
frame.origin.y -= headerView.bounds.size.height;
headerView.frame = frame;
//webView.scrollView.backgroundColor = [UIColor whiteColor];
[webView.scrollView addSubview:headerView];
如果取消注释该行,则headerView的背景为白色。但是,如果我发表评论,则背景颜色与webView中scrollView的背景颜色相同。因此,在其init方法中更改视图的背景颜色似乎不起作用。
最佳答案
我发现了导致此问题的错误。我正在这样初始化我的视图:
self = [super initWithFrame:CGRectZero];
然后设置框架:
frame = self.frame;
frame.size.height = _subjectView.bottom;
self.frame = frame;
self.backgroundColor = [UIColor whiteColor];
self.opaque = YES;
当我在init方法中添加此方法时:
self.clipsToBounds = YES;
子视图甚至都没有显示。所以我的 super 视图的框架宽度为0,但是子视图仍在其外部显示,因为它们的框架是正常的,并且clipsToBounds默认为NO。通过添加这一行来证明
frame.size.width = SCREEN_WIDTH;
它开始工作。
关于ios - UIWebView backgroundColor上的UIView不变,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/14590318/