Je manque probablement quelque chose de vraiment simple mais chaque fois que j'ajoute CALayers après que la vue soit visible, ils ne sont pas rendus. Voici le code que je utilise:CALayer non rendu après ajout de vue visible
[[imageLayers objectAtIndex:0] removeFromSuperlayer]; [imageLayers removeObjectAtIndex:0]; [[imageLayers objectAtIndex:0] removeFromSuperlayer]; [imageLayers removeObjectAtIndex:0]; firstImageOffset = (firstImageOffset + 2) % [pieceCache count]; int topIndex = (firstImageOffset + 6) % [pieceCache count]; int bottomIndex = (firstImageOffset + 7) % [pieceCache count]; float xPos = [(CALayer*)[imageLayers lastObject] position].x + kShiftXPixels; CALayer* layer1 = [CALayer layer]; [layer1 setFrame:CGRectMake(0, 0, kImageWidth, kImageHeight)]; [layer1 setContents:(id)[UIImage imageNamed:[[pieceCache objectAtIndex:topIndex] objectForKey:@"image_name"]]]; [[[self view] layer] addSublayer:layer1]; [layer1 setPosition:CGPointMake(xPos, kTopRowYPos)]; [imageLayers addObject:layer1]; CALayer* layer2 = [CALayer layer]; [layer2 setFrame:CGRectMake(0, 0, kImageWidth, kImageHeight)]; [layer2 setContents:(id)[UIImage imageNamed:[[pieceCache objectAtIndex:bottomIndex] objectForKey:@"image_name"]]]; [[[self view] layer] addSublayer:layer2]; [layer2 setPosition:CGPointMake(xPos, kBottomRowYPos)]; [imageLayers addObject:layer2];
J'ai aussi essayé de réutiliser les mêmes couches et la mise juste le contenu à un autre CGImage (via setContents :), ce qui provoque également la couche d'arrêt de rendu (plus précisément il s'anime comme si l'opacité avait été réglée à 0 pensait que c'était encore 1). J'ai vérifié que les calques sont réellement dans l'arborescence des calques de la vue en énumérant les sous-calques de la couche de vue. Ils semblent avoir les bonnes images et être dans les bonnes positions, ils ne dessinent tout simplement pas. Toute aide serait grandement appréciée.