2

UIWebViewのscrollViewに配置したカスタムUIViewサブクラスインスタンスheaderViewがあります。このビューを初期化するときに、このビューの背景色を白に設定しました。

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メソッドでビューの背景色を変更しても機能しないようです。

4

2 に答える 2

2

この問題の原因となった間違いを見つけました。私はこのように私の見解を始めていました:

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;

サブビューも表示されませんでした。したがって、スーパービューのフレーム幅は0でしたが、サブビューはフレームが正常であり、clipsToBoundsがデフォルトでNOであるため、サブビューはまだその外側に表示されていました。この行を追加することで証明されました

frame.size.width = SCREEN_WIDTH;

それは働き始めました。

于 2013-01-30T11:37:01.037 に答える
1

サブクラスで、不透明であることを確認しましたか?

    self.view.opaque = YES;
于 2013-01-30T10:56:29.660 に答える