Вы можете посмотреть на Core Animation. Существует слой под названием CAReplicatorLayer , который может вам помочь. В качестве альтернативы вы можете использовать общие CALayers и установить их содержимое на одно и то же изображение. Вам просто нужно выяснить ширину родительского вида и насколько велик размер каждой плитки, а затем просто создать CALayers для каждой плитки, смещая положение каждого нового слоя в зависимости от размеров сетки. Примерно так:
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];
}
}
Вам нужно будет вычислить расчет для каждой итерации положения вашего слоя. Помните, что по умолчанию точка привязки слоя является его центром. Вы либо вычисляете его, вычитая половину размера плитки слоя, либо вместо этого можете изменить точку привязки на угол. Подробнее об этом смотрите в разделе геометрия слоя документации Core Animation .