To echo Graham’s point, you can also use the CALayer of the label and modify its properties to get a more customized appearance. You’ve got shadowColor, shadowOffset, shadowOpacity, shadowPath, and shadowRadius. Between those properties and the label’s built-in shadow support, there’s a lot of customization to be had.
Jeff Kelley On Tue, Jul 12, 2011 at 6:22 AM, Graham Cox <graham....@bigpond.com> wrote: > AFAIK, you don't have to subclass UILabel - it has a shadowColor/offset > property that you can set as you wish, and it should all "just work". Sure, > the default values are sometimes a bit questionable, but all you need to do > is to set those shadow properties in IB or in code. > > You're doing way too much work, and breaking something in the process. I > don't see anything in your code that adds anything to what you can do with > the view's standard properties. Also, I found that things such as shadow > blur radius aren't necessarily well supported in iOS, which probably doesn't > have the processing power to do that very well - even on Mac shadows kill > performance. > > --Graham > > > On 12/07/2011, at 4:49 PM, Development wrote: > > > Among the myriad of problems I'm having with this application a new one > developed when I began adding a shadow to text. > > The default text shadows look terrible on iPhone. This I subclassed > UILabel and did an override of drawTextInRect > > > > Well in order to draw with the correct colors I have had to do all my > custom stuff and then call [super drawTextInRect:rect]; > > > > It all works until an Italic font is used. Then the last maybe 5 pixel > are cut out of the text. I've attempted to adjust both the bounding box of > the parent view and the subclassed label both, and it does not seem to > change the views at all. So I'm not entirely sure how but I'm screwing up > adjusting a rectangle… (Hoiw hard is it to add 6 pixels to width of a darn > rect?) > > Anyway. So I attempted to use a string drawing method, which would among > other things allow me to set the alignment. This works, until I click the > text (which selects it) And it also fails to draw in the correct color. > (Always black instead of whatever it should be) > > > > Is string drawing possible if I want color? I need to override to get > nice shadows but it creates this nightmare. > > > > CGSize myShadowOffset = self.offset; > > float myColorValues[] = {0, 0, 0, self.depth}; > > > > CGContextRef myContext = UIGraphicsGetCurrentContext(); > > CGContextSaveGState(myContext); > > > > CGColorSpaceRef myColorSpace = CGColorSpaceCreateDeviceRGB(); > > CGColorRef myColor = CGColorCreate(myColorSpace, myColorValues); > > CGContextSetShadowWithColor (myContext, myShadowOffset, self.spread, > myColor); > > > > CGSize newSize = rect.size; > > CGSize imgSize = [self.text sizeWithFont:self.font]; > > imgSize.width +=6; //this does nothing > > //everything below adjusts for the shadow which is a flipping train > wreck of its own. > > CGPoint p; > > CGFloat x=0.0,y=spread; > > > > if (myShadowOffset.width <=0) { > > x =((newSize.width - > (imgSize.width+(spread*2)))/2)+abs(myShadowOffset.width); > > } > > else if(myShadowOffset.width >0){ > > x =0; > > } > > p = CGPointMake(x, y); > > > > rect.origin = p; > > rect.size = imgSize; > > > > [super drawTextInRect:rect]; > > > > CGColorRelease(myColor); > > CGColorSpaceRelease(myColorSpace); > > > > CGContextRestoreGState(myContext); > _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com