我在 awakeFromNib 中做到了这一点:
drawLayer = [CALayer layer];
self.layer = drawLayer;
[self setWantsLayer:YES];
有一个“添加:”动作
// some business logic
[drawLayer addSublayer:layer];
[self layout];
-(void)layout
while(pg = [pageEnumr nextObject])
{
//rect is calculated so that layers are added in order (left to right)
[pg setFrame:rect];
}
我希望从superLayer(视图的CALayer)的左上角添加子层,但它们是从左下角添加的
我试过仿射变换
CGAffineTransform trans = CGAffineTransformMake(1.0,0.0,0.0,-1.0,0.0,0.0);
self.layer.affineTransform = trans;
但滚动使我的子层消失
我用了变换
CATransform3D aTransform = CATransform3DIdentity;
aTransform = CATransform3DMakeRotation(M_PI, 1, 0, 0);
self.layer..transform = aTransform;
我必须应用变换来反旋转 subLayers,在添加大约 100 个子图层后,滚动变慢并且应用程序变得无响应
如果我不应用任何变换(无仿射或无变换),那么即使在添加 1000 个子层后应用程序也很快
我的应用程序必须托管大量不同大小的层。帮助我如何使托管层采用翻转坐标...