iPhone SDK: повторные просмотры - PullRequest
1 голос
/ 16 ноября 2009

У меня есть один UIView, который я использую в качестве основного вида, и я хочу повторить подпредставление на экране. Как именно я могу это сделать?

1 Ответ

1 голос
/ 17 ноября 2009

Вы можете посмотреть на 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 .

...