How to Anti-Alias Layers in iPhoneOS
- by Shannon A.
We've had Reiner Knizia's Money out for a couple of months now. It's
done pretty well, and so we've been updating it as time allows.
However, one thing continues to bug me. I've never been able to get my
layered cards to anti-alias correctly.
Here's a sample:
Cards that are laid straight are very clean, but whenever they're
angled the black lines around the cards get jagged. I've tried this
depending on both lines implicit to the artwork and lines drawn
through drawRect:, and they both do the same thing. I've tried the
edgeAntiAliasingMask and it doesn't do a thing as far as I can tell.
I've tried masksToBounds for the sublayers set to NO and YES.
Right now my card is set up as a CALayer that has sub-CALayers for the
front and the back, plus for a few other things like a lightening mask
and a darkening mask. Here's some snippets of the code:
CArdLayer *theCardLayer = [CArdLayer layer];
theCardLayer.edgeAntialiasingMask = kCALayerLeftEdge | kCALayerRightEdge | kCALayerBottomEdge | kCALayerTopEdge;
theCardLayer.front = [CALayer layer];
theCardLayer.front.edgeAntialiasingMask = kCALayerLeftEdge | kCALayerRightEdge | kCALayerBottomEdge | kCALayerTopEdge;
theCardLayer.front.bounds = theCardLayer.bounds;
theCardLayer.front.masksToBounds = YES;
theCardLayer.front.contents = (id)[cardDrawing CGImage];
[theCardLayer addSublayer:theCardLayer.front];
Etc ...
Any ideas on how to make the cards actually anti-alias?