1

メインビューとして使用しているUIViewが1つあり、画面全体でサブビューを繰り返したいと思います。どのくらい正確にこれを行うことができますか?

4

1 に答える 1

1

CoreAnimationを見ることができます。あなたを助けるかもしれないCAReplicatorLayerと呼ばれる層があります。または、汎用CALayerを使用して、それらのコンテンツをすべて同じイメージに設定することもできます。親ビューの幅と各タイルの大きさを把握してから、グリッドの寸法に応じて新しい各レイヤーの位置をシフトする各タイルのCALayerを作成する必要があります。このようなもの:

UIImage *imageToReplicate = [UImage imageNamed:@"tile"];
for (i = 0; i < 10; ++i)
{
    for (j=0; j < 10; ++j)
    {
        CGFloat xPos = 0.0; // Calculate your x position
        CGFloat yPos = 0.0; // Calculate your y position

        CALayer *layer = [CALayer layer];
        [layer setBounds:CGRectMake(0.0f, 0.0f, TILE_WIDTH, TILE_HEIGHT)];
        [layer setPosition:CGPointMake(xPos, yPos)];
        [layer setContents:(id)[image CGImage]];
        [[[self view] layer] addSublayer:layer];
    }
}

レイヤー位置の反復ごとの計算を把握する必要があります。デフォルトでは、レイヤーのアンカーポイントがその中心であることを忘れないでください。レイヤータイルサイズの半分を差し引いて計算するか、代わりにアンカーポイントをコーナーに変更できます。詳細については、CoreAnimationドキュメントのレイヤージオメトリセクションを参照してください。

于 2009-11-16T23:22:00.487 に答える