スタイルUITableViewStylePlainでUITableViewを実装しました。不透明にする必要がある単色の背景色を持つカスタム ヘッダー ビューを使用しています。ただし、ヘッダーは不透明ではなく、ヘッダーの下をスクロールしてもセルが表示されたままになります。ヘッダーを不透明にしたいのですが、これがどのように行われるかわかりません。
4 に答える
興味のある人にとっては、これに対する解決策は単純ですが、明白ではありませんでした。うまくいくものにたどり着く前に、さまざまなことを試しました。少なくとも 1 つの他のアプリで見たことがあったので、それができることはわかっていました。
tableView:viewForHeaderInSection:
これらには、デリゲート メソッドによって作成されたカスタム ヘッダーの使用が含まれます。
うまくいかなかった点:
1) このデリゲート メソッドで作成された親ビューの backgroundColor プロパティを設定します。何らかの理由で、カスタム ヘッダー ビューに使用される場合、この色は無視されます。
2) サブビューが透明でないことに気付いたので、親ビューと既存のサブビューの間に中間ビューを入れてみました。このビューの背景色を単色に設定しました。これも無視されました。
何が機能したか:
3) このコードで backgroundColor プロパティを設定します。
[UIColor colorWithPatternImage:[UIImage imageNamed:@"anImage.png"]];
どういうわけか、単純な色は機能しませんが、画像から作成された色は機能します。
カスタムヘッダービューがどのようにレンダリングされるかについて誰かがここで何が起こっているかを説明したい場合に備えて、この質問は別の日に開いたままにします。この小さな詳細についてのドキュメントには何もありませんでしたが、見逃した可能性があります。
私は同じ問題を経験しました。うまくいった解決策は、UITableViewHeaderFooterViewをサブクラスにしてから、drawRectをオーバーライドすることでした...