ios 代码控制出现控件的阴影
2015-01-04来源:

只需要把对应的空间,进行重写。我开发的主要针对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

更多信息请查看IT技术专栏

推荐信息
Baidu
map