iPhone SDK:重复子视图
你可以看看核心动画。有一个名为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。
它将与UIview一起工作吗? – 2009-11-17 00:24:22
是的。在示例代码中,我提供了[[[self view view]图层] addSublayer:layer];这个视图有一个UIView。 UIView有一个由字段-sublayers表示的图层树。您正在将子层添加到UIView的图层树中。 – 2009-11-17 03:24:04
有人想帮忙吗? – 2009-11-16 01:31:26
您需要提供更多的上下文。什么是子视图,你想要填补它的超级视图的图像?或者你是否想创建子视图的多个实例来填充空间? – 2009-11-16 03:35:35
Uiview,它的多个实例,平铺 – 2009-11-16 04:16:45