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

字號(hào):


    只需要把對(duì)應(yīng)的空間,進(jìn)行重寫。我開發(fā)的主要針對(duì)uibutton這個(gè)控件
    .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