ios 代碼控制出現控件的陰影 – iPhone手機開發技術文章 iPhone軟體開發教學課程

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

 

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *