ios 代碼控制出現(xiàn)控件的陰影

字號:


    只需要把對應(yīng)的空間,進行重寫。我開發(fā)的主要針對UIButton這個控件
    .h文件,如下:
    #import
    #import
    @interface ShadowButton : UIButton
    {
    UIColor *shadowColor;
    }
    @property(nonatomic , strong)UIColor *shadowColor;
    @end
    .m文件,如下
    #import "ShadowButton.h"
    @implementation ShadowButton
    @synthesize shadowColor;
    -(void)setProperty
    {
    self.imageEdgeInsets = UIEdgeInsetsMake(0, -1, 3, 2);
    self.shadowColor = [UIColor grayColor];
    }
    - (id)initWithFrame:(CGRect)frame
    {
    self = [super initWithFrame:frame];
    if (self) {
    // Initialization code
    }
    return self;
    }
    -(id)initWithCoder:(NSCoder *)aDecoder
    {
    self = [super initWithCoder:aDecoder];
    if (self) {
    [self setProperty];
    }
    return self;
    }
    // Only override drawRect: if you perform custom drawing.
    // An empty implementation adversely affects performance during animation.
    - (void)drawRect:(CGRect)rect
    {
    // Drawing code
    CGContextRef context = UIGraphicsGetCurrentContext();
    CGRect frame = rect;
    UIEdgeInsets insets = self.imageEdgeInsets;
    frame.origin.x +=insets.left;
    frame.origin.y +=insets.top;
    frame.size.width -= (insets.left + insets.right);
    frame.size.height -= (insets.top + insets.bottom);
    if (shadowColor) {
    CGContextSetShadowWithColor(context, CGSizeMake(insets.right, insets.bottom), 10, [shadowColor CGColor]);
    }
    UIImage *image = self.imageView.image;
    [image drawInRect:frame];
    }
    @end