// // KWMButton.m // iOrangeBusiness // // Created by Yaotian on 7/3/15. // Copyright (c) 2015 kwm. All rights reserved. // #import "KWMButton.h" @implementation KWMButton - (instancetype)initWithCoder:(NSCoder *)aDecoder { self = [super initWithCoder:aDecoder]; if (self) { [self setup]; } return self; } - (instancetype)initWithFrame:(CGRect)frame { self = [super initWithFrame:frame]; if (self) { [self setup]; } return self; } - (void)setup { [self pressedColor]; [self normalColor]; [self addTarget:self action:@selector(wasPressed) forControlEvents:(UIControlEventTouchDown | UIControlEventTouchDownRepeat | UIControlEventTouchDragInside | UIControlEventTouchDragEnter)]; [self addTarget:self action:@selector(endedPress) forControlEvents:(UIControlEventTouchCancel | UIControlEventTouchDragOutside | UIControlEventTouchDragExit | UIControlEventTouchUpInside | UIControlEventTouchUpOutside)]; } - (void)wasPressed { self.backgroundColor = self.pressedColor; } - (void)endedPress { self.backgroundColor = self.normalColor; } - (UIColor *)pressedColor { if (!_pressedColor) { static CGFloat kHighlightDelta = 0.08; CGFloat red, grn, blu, white, alpha = 0.0; [self.backgroundColor getRed:&red green:&grn blue:&blu alpha:&alpha]; [self.backgroundColor getWhite:&white alpha:&alpha]; _pressedColor = [UIColor colorWithRed:red - kHighlightDelta green:grn - kHighlightDelta blue:blu - kHighlightDelta alpha:alpha]; } return _pressedColor; } - (UIColor *)normalColor { if (!_normalColor) { _normalColor = self.backgroundColor; } return _normalColor; } @end