//
// UIButton+RM.h
// ProjectManageEx
//
// Created by mac on 16/7/31.
// Copyright © 2016年 zhangjian01. All rights reserved.
//
#import
@interface UIButton (RM)
@property (nonatomic, assign)CGFloat enlargedEdge;
- (void)setEnlargedEdgeWithTop:(CGFloat)top left:(CGFloat)left bottom:(CGFloat)bottom right:(CGFloat)right;
@end
//
// UIButton+RM.m
// ProjectManageEx
//
// Created by mac on 16/7/31.
// Copyright © 2016年 zhangjian01. All rights reserved.
//
#import "UIButton+RM.h"
@implementation UIButton (RM)
static char topEdgeKey;
static char leftEdgeKey;
static char bottomEdgeKey;
static char rightEdgeKey;
- (void)setEnlargedEdge:(CGFloat)enlargedEdge{
[self setEnlargedEdgeWithTop:enlargedEdge left:enlargedEdge bottom:enlargedEdge right:enlargedEdge];
}
- (CGFloat)enlargedEdge{
return [(NSNumber *)objc_getAssociatedObject(self, &topEdgeKey)floatValue];
}
- (void)setEnlargedEdgeWithTop:(CGFloat)top left:(CGFloat)left bottom:(CGFloat)bottom right:(CGFloat)right{
objc_setAssociatedObject(self, &topEdgeKey, [NSNumber numberWithFloat:top], OBJC_ASSOCIATION_RETAIN_NONATOMIC);
objc_setAssociatedObject(self, &leftEdgeKey, [NSNumber numberWithFloat:left], OBJC_ASSOCIATION_RETAIN_NONATOMIC);
objc_setAssociatedObject(self, &bottomEdgeKey, [NSNumber numberWithFloat:bottom], OBJC_ASSOCIATION_RETAIN_NONATOMIC);
objc_setAssociatedObject(self, &rightEdgeKey, [NSNumber numberWithFloat:right], OBJC_ASSOCIATION_RETAIN_NONATOMIC);
}
- (CGRect)enlargedRect{
NSNumber *topEdge = objc_getAssociatedObject(self, &topEdgeKey);
NSNumber *leftEdge = objc_getAssociatedObject(self, &leftEdgeKey);
NSNumber *bottomEdge = objc_getAssociatedObject(self, &bottomEdgeKey);
NSNumber *rightEdge = objc_getAssociatedObject(self, &rightEdgeKey);
if (topEdge && leftEdge && bottomEdge && rightEdge) {
CGRect enlargedRect = CGRectMake(self.bounds.origin.x - leftEdge.floatValue, self.bounds.origin.y - topEdge.floatValue, self.width + leftEdge.floatValue + rightEdge.floatValue, self.height + topEdge.floatValue + bottomEdge.floatValue);
return enlargedRect;
}else{
return self.bounds;
}
}
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{
if (self.alpha <= 0.01 || !self.userInteractionEnabled || self.hidden) {
return nil;
}
CGRect enlargedRect = [self enlargedRect];
return CGRectContainsPoint(enlargedRect, point) ? self : nil;
}
@end
//
//
//
//
//
//
#import
@interface UIButton (RM)
@property (nonatomic, assign)CGFloat enlargedEdge;
- (void)setEnlargedEdgeWithTop:(CGFloat)top left:(CGFloat)left bottom:(CGFloat)bottom right:(CGFloat)right;
@end
//
//
//
//
//
//
//
#import "UIButton+RM.h"
@implementation UIButton (RM)
static char
static char
static char
static char
- (void)setEnlargedEdge:(CGFloat)enlargedEdge{
}
- (CGFloat)enlargedEdge{
}
- (void)setEnlargedEdgeWithTop:(CGFloat)top left:(CGFloat)left bottom:(CGFloat)bottom right:(CGFloat)right{
}
- (CGRect)enlargedRect{
}
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{
}
@end