[英]iPhone SDK: repeat subviews
我有一个UIView,我将其用作主视图,并且想在整个屏幕上重复该子视图。 我到底该怎么做?
您可以看一下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文档的图层几何部分 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.