萬盛學電腦網

 萬盛學電腦網 >> 網絡編程 >> ios >> ios 代碼控制出現控件的陰影

ios 代碼控制出現控件的陰影

  只需要把對應的空間,進行重寫。我開發的主要針對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

copyright © 萬盛學電腦網 all rights reserved