2009-11-16 3 views
1

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

+0

Кто-нибудь хочет помочь? –

+0

Вам нужно предоставить больше контекста. Что такое subview, образ, который вы хотите сделать, чтобы заполнить его супервизор? Или вы хотите создать несколько экземпляров subview, чтобы заполнить пробел? –

+0

Uiview, несколько экземпляров, мозаичный –

ответ

1

Вы можете посмотреть 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]; 
    } 
} 

Вам нужно будет вычислить расчет для каждой итерации позиций вашего слоя. Помните, что по умолчанию опорная точка слоя является его центром. Вы либо вычисляете его, вычитая половину размера плитки слоя, либо вы можете изменить опорную точку вместо угла. Для получения дополнительной информации об этом, взгляните на layer geometry section of the Core Animation documentation.

+0

будет ли он работать с UIview? –

+0

Да. В примере кода я предоставил строку [[[self view] layer] addSublayer: layer] ;, вид - UIView. У UIView есть дерево слоев, представленное полями-разделителями. Вы добавляете подслои в дерево слоев UIView. –

Смежные вопросы