WEB开发网
开发学院手机开发iPhone 开发 ios 代码控制出现控件的阴影 阅读

ios 代码控制出现控件的阴影

 2013-01-04 19:17:00 来源:WEB开发网   
核心提示: 只需要把对应的空间,进行重写,ios 代码控制出现控件的阴影,我开发的主要针对UIButton这个控件.h文件,如下:#import <UIKit/UIKit.h>#import <QuartzCore/QuartzCore.h>@interface ShadowButton : UIButt

 只需要把对应的空间,进行重写。我开发的主要针对UIButton这个控件

.h文件,如下:

#import <UIKit/UIKit.h>

#import <QuartzCore/QuartzCore.h>

@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

Tags:ios 代码 控制

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接