メインビューとして使用しているUIViewが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 に答える