To achieve this without having to manually draw the shadows in GIMP (which happens to be my favorite open-source image manipulation program) I came up a very simple use of CALayer's shadow property: Simply offset the layer by, say, twice the screen width and the shadow by twice the screen width in the opposite direction, and voila! Only the shadow of your CALayer is visible - in whatever color you would like and with whatever blur factor you wish.
Here's some code:
layer.bounds = CGRectMake(0.0f, 0.0f, pictureRect.size.width, pictureRect.size.height);
layer.position = CGPointMake(pictureRect.origin.x + (screenWidth * 2.0f), pictureRect.origin.y);
layer.contents = (id)image.CGImage;
layer.shadowOffset = CGSizeMake(-(screenWidth * 2.0f), 0.0f);
layer.shadowRadius = 0.0f;
layer.shadowColor = [UIColor blackColor].CGColor;
layer.shadowOpacity = 0.7f;
No need to start up GIMP when one can produce the same effect in code! :-)
Ingen kommentarer:
Send en kommentar