私は自分のセクションヘッダービューをUITableViewの上、下、背景色の境界線を持って作成する必要があります。UITableViewSectionHeaderをカスタマイズする - イメージと描画を比較する
私の質問は、これを達成するための最善の(または最も正しい)方法は何ですか?
- 画像を使用していますか?
- また、ボーダーと背景色をQuartz 2Dで描画しますか?
- パフォーマンスの違いがありますか?
ありがとうございます! (私の英語で申し訳ありません)
私は自分のセクションヘッダービューをUITableViewの上、下、背景色の境界線を持って作成する必要があります。UITableViewSectionHeaderをカスタマイズする - イメージと描画を比較する
私の質問は、これを達成するための最善の(または最も正しい)方法は何ですか?
ありがとうございます! (私の英語で申し訳ありません)
ボーダーと背景色が必要な場合は、それらを使って描画することは間違いありません。あなたがそれらをイメージに対して描画すると、パフォーマンスが向上します。 UIImages
はiPhoneで高度に最適化されていますが、依然としてカスタム描画が優れたパフォーマンスを提供します。
これを行う最も簡単な方法はおそらくCALayersを使用することです。あなたの視点に必要な背景色を与え、境界として機能するように2つのレイヤーを追加します。あなたは、単一のピクセルが(黒ボーダー、白背景)の例と国境を接したいと仮定すると、次のようになります。
UIView *headerView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, 320, 24)];
headerView.backgroundCoor = [UIColor whiteColor];
CALayer *topLine = [CALayer layer];
topLine.frame = CGRectMake(0, 0, 320, 1);
topLine.backgroundColor = [UIColor blackColor].CGColor;
[headerView.layer addSublayer:topLine];
// repeat for bottom line
もう一つの方法は、ビュー層上BORDERCOLOR/borderWidthプロパティを使用することですが、その後、あなたは(いくつかのトリックを実行する必要がありますビューをマスキングまたはサイジングしすぎると)、サイドボーダーを隠すことができます。
レイヤーは非常に強力です。グラデーション、シェイプ、マスクを簡単に追加することができます。
Tks! CALayerでのグラデーションの使用は、このプロジェクトで多分私を助けてくれるでしょう。 – rodolfoag
Tks!あなたの答えに基づいて、私はQuartzに行くことに決めました。このプロジェクトでは、パフォーマンスが重要な課題です。 – rodolfoag