Created
March 26, 2015 20:46
-
-
Save warpling/672261ad0a15558ae8d8 to your computer and use it in GitHub Desktop.
CATransformLayer Opacity Problem
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
- (void)viewDidLoad { | |
[super viewDidLoad]; | |
// Make TransformLayer | |
CATransformLayer *transformLayer = [CATransformLayer layer]; | |
transformLayer.frame = self.view.bounds; | |
transformLayer.anchorPoint = CGPointMake(0, 0); | |
// Make red layer | |
CALayer *redLayer = [CALayer layer]; | |
redLayer.bounds = transformLayer.bounds; | |
redLayer.backgroundColor = [UIColor redColor].CGColor; | |
// Make blue layer | |
CALayer *blueLayer = [CALayer layer]; | |
blueLayer.bounds = transformLayer.bounds; | |
blueLayer.backgroundColor = [UIColor blueColor].CGColor; | |
// Push the red layer back a tiny bit so it's truly behind the blue layer | |
redLayer.transform = CATransform3DMakeTranslation(0, 0, -0.001); | |
// Flip the red layer around | |
redLayer.transform = CATransform3DRotate(redLayer.transform, M_PI, 0, 1, 0); | |
// Setting doubleSided to NO prevents the back color from bleeding through when transformLayer's opacity is adjusted | |
redLayer.doubleSided = NO; | |
blueLayer.doubleSided = NO; | |
[transformLayer addSublayer:redLayer]; | |
[transformLayer addSublayer:blueLayer]; | |
[transformLayer setOpacity:0.5]; | |
[self.view.layer addSublayer:transformLayer]; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment