Tôi muốn áp dụng bóng bên trong cho nhãn UILabel. Tôi có một giải pháp, nhưng nó không đủ tốt. Bất cứ ai có một giải pháp tốt hơn?Áp dụng bóng bên trong cho 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);
}
Tôi quen thuộc với thuộc tính lớp UILabel, nhưng shadow offset
cho chúng ta một outer-shadow, KHÔNG nội bóng (trừ khi tôi đang thiếu một cái gì đó).
Bạn đã thử các giá trị âm trong myShadowOffset chưa? – adam