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

來源:互聯網
上載者:User

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

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.