2

コレクションビューのレイアウトのような3列の新聞を作成することは可能ですか?

3つのテーブルビューを使用してみましたが、機能しますが、非常に遅くなります。したがって、コレクションビューがネイティブソリューションである場合は、それらを使用する方がよいと思います。彼らは私の仕事に合っていますか?

主な問題は、すべてのセルが左から右に塗りつぶされていることです。

1 2 3
4 5 6

そして私は必要です:

1 5 9
2 6 10
3 7 11
4 8 12
4

4 に答える 4

3

はい、コレクションビューがニーズに合っていると思います。おそらく、カスタム レイアウトを使用する必要があります。WWDC 2012 のビデオで、「コレクション ビューの概要」と「コレクション ビューを使用した高度なレイアウト」を確認してください。カスタム レイアウトを使用すると、好きなようにセルを並べ替えることができます。

于 2012-10-14T17:19:30.213 に答える
1

データ ソースの順序を変更することをお勧めします。

編集:

NSArray *oldArr = @[@"1", @"2", @"3", @"4", @"5", @"6", @"7", @"8", @"9", @"10", @"11"];
NSMutableArray *newArr = [NSMutableArray arrayWithCapacity:oldArr.count];

int row = ceilf(oldArr.count / 3.f);
int remainder = oldArr.count % 3;

for (int i = 0; i < row; i++) {
    [newArr addObject:[oldArr objectAtIndex:i]];

    if (i == (row - 1) && remainder == 1)
        continue;

    [newArr addObject:[oldArr objectAtIndex:i + row]];

    if (i == (row - 1) && remainder == 2)
        continue;

    [newArr addObject:[oldArr objectAtIndex:i + row * 2]];
}

結果:

1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, = > 1, 5, 9, 2, 6, 10, 3, 7, 11, 4, 8

印刷の書式設定:

1  2  3
4  5  6
7  8  9
10 11

to

1  5  9
2  6  10
3  7  11
4  8
于 2012-10-14T16:24:12.677 に答える
0

スクロール方向を水平に変更することで可能です。そうすれば、好きなように並べることができ、スクロールが最も理にかなっています。

垂直スクロールでそれを行いたい場合は、 の独自のサブクラスを作成する必要がありますUICollectionViewFlowLayout。しかし、ユーザーエクスペリエンスは本当に悪くなります。

于 2012-10-15T13:21:58.190 に答える
0

わかりました、3 つのテーブル ビュー レイアウトの修正が完了しました。プログラムで作成した XIB からセルをロードする代わりに。これにより、パフォーマンスが大幅に向上しました。答えてくれてありがとう。

于 2012-10-15T16:25:44.903 に答える