のスタイルを持っていて、微妙な違い(色が異なり、半径が短い丸いコーナーのような)を持っているように、私はUITableView
のスタイルをしたいと思う。行の高さは可変です。私は、このカスタムスタイルを私のアプリのほとんどのテーブルビューコントローラに使用したいと思います。例えば、Twitter、Groupon、& GitHubを参照してください。カスタムUITableViewCell backgroundView&selectedBackgroundView
どうすればよいですか?
のようにしていると思います。 backgroundView
& selectedBackgroundView
を両方ともUIGroupTableViewCellBackground
(サブクラスUIView
)のインスタンスに設定します。 UIGroupTableViewCellBackground
はレイヤのデリゲートであり、レイヤのコンテンツをCGImageRef
に設定するためにdrawLayer:
を実装しています。
私は、Appleはまた、
CGLayer
を使用して検討する代わりに、ビットマップグラフィックスコンテキストに描画することを提案Quartz 2D Programming Guide : Creating a Bitmap Graphics Context、に従って、このCGImageRef
を作成し、かなり確信しています。このアプリケーションにはどちらが適していますか?また、テーブルビューの最初のセルは
UIImageView
を使用してその上部に丸いコーナーで影を追加する(これは、半透明のPNGファイルでサイズ変更可能(幅方向)UIImage
に設定する。)それをしない理由それを行う?この遅いスクロールはしませんか?なぜ最初のセルのCGImageRef
にこれを描画しないのですか?たぶん、パフォーマンスの低下はそれほど重要ではなく、セルを画像で正確に見せるのは簡単でした。私はセルのCGImageRef
をディスクに保存し、プレビューでそれを開いた。それはまだ角が丸まっています。このオーバーレイされたビューは、トップシャドウを追加するだけです。以下は、テーブルビューで「カラーブレンドレイヤー」が選択された状態で、Core Graphics Instrumentsツールをデバイス上で実行した場合のスクリーンショットです。上のシャドウがブレンドされていることがわかります。そして、最後のセルでもブレンドされているように見えます。選択された第3のセル(無配合)で
。最初または最後のセルを選択すると同じ動作が実行されますが、すでにブレンドされたオーバーレイビューは取り除かれません。