2012-01-23 8 views
0

私は自分のセクションヘッダービューをUITableViewの上、下、背景色の境界線を持って作成する必要があります。UITableViewSectionHeaderをカスタマイズする - イメージと描画を比較する

私の質問は、これを達成するための最善の(または最も正しい)方法は何ですか?

  • 画像を使用していますか?
  • また、ボーダーと背景色をQuartz 2Dで描画しますか?
  • パフォーマンスの違いがありますか?

ありがとうございます! (私の英語で申し訳ありません)

答えて

0

ボーダーと背景色が必要な場合は、それらを使って描画することは間違いありません。あなたがそれらをイメージに対して描画すると、パフォーマンスが向上します。 UIImagesはiPhoneで高度に最適化されていますが、依然としてカスタム描画が優れたパフォーマンスを提供します。

+0

Tks!あなたの答えに基づいて、私はQuartzに行くことに決めました。このプロジェクトでは、パフォーマンスが重要な課題です。 – rodolfoag

1

これを行う最も簡単な方法はおそらく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プロパティを使用することですが、その後、あなたは(いくつかのトリックを実行する必要がありますビューをマスキングまたはサイジングしすぎると)、サイドボーダーを隠すことができます。

レイヤーは非常に強力です。グラデーション、シェイプ、マスクを簡単に追加することができます。

+0

Tks! CALayerでのグラデーションの使用は、このプロジェクトで多分私を助けてくれるでしょう。 – rodolfoag

関連する問題