1

必要なコンテンツを含む tableView を既に実装しています。表示されるセルは 5 つだけです。私が今達成できないことは次のとおりです。

使用するiPhoneに応じて、5つのセルをテーブルビューの高さに均等に分散させたいと思います。したがって、論理的には、iPhone 4 よりも iPhone 5 の方が高さが高くなるはずです。また、網膜がある場合も網膜がない場合も、細胞の正しい分布があるはずです。

そのために別の背景画像を提供する必要がありますか? そして、そのための最良のアプローチは何ですか:

テーブルビューは次のようになります。

[ヘッダー] [A - テキスト 1] [B - テキスト 2] [C - テキスト 3] [D - テキスト 4] [E - テキスト 5]

一日の終わりにスクロールが可能であってはなりません。セルを自動的に均等に分散するだけです。

私はそれについて助けてくれてとてもうれしいです...

ありがとうございました

4

1 に答える 1

5

まず、UITableViewDelegate メソッドtableView:heightForRowAtIndexPath:を使用して、テーブルの高さを 5 で割った値を単純に返すと、各セルがテーブルの高さの 5 分の 1 になります。

- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath
{
    return [tableView bounds].size.height / (CGFloat)[myDataSourceArray count];
}

テーブルが画面のサイズになるように構成されている場合、これは iPhone 5 と iPhone 4 の両方で機能します。さらに、iOS 用にプログラミングする場合、iOS が自動的にスケーリングを処理できるように、ピクセルではなくポイントで画面の寸法を指定することを考慮して、セルを網膜/非網膜用に設定するために必要なことは何もありません。

次に、背景画像については、必要な最終結果に応じて、これを行う方法がいくつかあります. たとえば、セルをパターン イメージで埋め、デフォルトのテーブル ビュー セパレータでセルを分割したい場合は、パターンを実現するために必要な最小サイズでイメージを作成できます。(2x2px と 4x4 @2x の可能性があります) 次に、単純に次を使用します。

[[cell contentView] setBackgroundColor:[UIColor colorWithPatternImage:[UIImage imageNamed:@"myPatternImage"]]];

または、セルの周囲に表示したいある種の境界線を持つ画像がある場合は、サイズ変更可能なキャップインセット付きの画像を使用して境界線の周りを描画し、セルの内側をパターンで塗りつぶすことができます。スクリーンショットを次に示しますそれがどのように機能するかを説明するのに役立ちます:

ここに画像の説明を入力

もちろん、セルのサブビューとして UIImageView を追加し、完全な画像を追加することもできますが、これは間違いではありませんが、提案した他の 2 つの方法の方が効率的であるため、お勧めしません。お役に立てれば!

于 2012-12-25T13:48:34.977 に答える