我想將內部陰影應用於UILabel。我有一個解決方案,但它不夠好。任何人有更好的解決方案?將內部陰影應用於UILabel
// UILabel subclass
- (void) drawTextInRect:(CGRect)rect {
CGSize myShadowOffset = CGSizeMake(0, 2);
float myColorValues[] = {255, 0, 0, 1};
CGContextRef myContext = UIGraphicsGetCurrentContext();
CGContextSaveGState(myContext);
CGColorSpaceRef myColorSpace = CGColorSpaceCreateDeviceRGB();
CGColorRef myColor = CGColorCreate(myColorSpace, myColorValues);
CGContextSetShadowWithColor (myContext, myShadowOffset, 5, myColor);
CGContextSetBlendMode(myContext, kCGBlendModeLighten);
[super drawTextInRect:rect];
CGColorRelease(myColor);
CGColorSpaceRelease(myColorSpace);
CGContextRestoreGState(myContext);
}
我熟悉的UILabel層屬性,但shadow offset
給了我們一個外的影子,而不是內部陰影(除非我失去了一些東西)。
您是否在myShadowOffset中嘗試過負值? – adam 2011-04-28 11:28:02