Reputation: 427
I draw a circle in the drawRect method and fill it with a color. Now i need to add a glowing effect to the circle. When i click on a button, the circle needs to glow. How can i do this? Any help will be greatly appreciated!
Thanks in advance!!!
Upvotes: 4
Views: 8736
Reputation: 47292
If you are using Quartz 2D, you can simply add a white shadow to the circle.
See the Quartz 2D Programming Guide for Shadows
Apple's Sample code for setting up a shadow taken from the link above:
void MyDrawWithShadows (CGContextRef myContext, // 1
float wd, float ht);
{
CGSize myShadowOffset = CGSizeMake (-15, 20);// 2
float myColorValues[] = {1.0, 1.0, 1.0, .6};// 3 (White shadow colour)
CGColorRef myColor;// 4
CGColorSpaceRef myColorSpace;// 5
CGContextSaveGState(myContext);// 6
CGContextSetShadow (myContext, myShadowOffset, 5); // 7
// Your drawing code here!!!!!!!!!!!!!!!! // 8
CGContextSetRGBFillColor (myContext, 0, 1, 0, 1);
CGContextFillRect (myContext, CGRectMake (wd/3 + 75, ht/2 , wd/4, ht/4));
myColorSpace = CGColorSpaceCreateDeviceRGB ();// 9
myColor = CGColorCreate (myColorSpace, myColorValues);// 10
CGContextSetShadowWithColor (myContext, myShadowOffset, 5, myColor);// 11
// Your drawing code here// 12
CGContextSetRGBFillColor (myContext, 0, 0, 1, 1);
CGContextFillRect (myContext, CGRectMake (wd/3-75,ht/2-100,wd/4,ht/4));
CGColorRelease (myColor);// 13
CGColorSpaceRelease (myColorSpace); // 14
CGContextRestoreGState(myContext);// 15
}
Good luck!
Comment line 3 Above means your shadow will be white (1.0, 1.0, 1.0). Comment line 2 is the shadow offset.
Upvotes: 8
Reputation: 39376
Have you tried using a UIButton, with your round circle and color as its image? It would automatically get a glowing effect without any work from you.
Duplicating that exact glow is a little hard since it actually is animated, starting as a smaller glow and then growing in a short period of time.
If you want to do it without UIButton, say either with UIControl, or as a view, then you could take a shot of your button, create a suitable glow in a graphic editing app like Photoshop, and then add that image to your nib. When you want to show the glow, add it to the view with a simple animation that uses a small size transform to make it pulse once.
Good luck!
Upvotes: 0