From d605dab6d323529fa38f7364af11de5e3d34a00f Mon Sep 17 00:00:00 2001 From: yourcodesucks Date: Sun, 22 Mar 2015 21:07:10 -0400 Subject: [PATCH 1/3] Update MMPopLabel.m -updated arrow type enum to support future functionality -added some safety around delegate callbacks --- Classes/ios/MMPopLabel.m | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/Classes/ios/MMPopLabel.m b/Classes/ios/MMPopLabel.m index b45513e..64bcb6e 100644 --- a/Classes/ios/MMPopLabel.m +++ b/Classes/ios/MMPopLabel.m @@ -17,6 +17,7 @@ typedef enum : NSUInteger { MMPopLabelTopArrow, MMPopLabelBottomArrow, + MMPopLabelNoArrow } MMPopLabelArrowType; @@ -306,7 +307,9 @@ - (void)dismiss self.alpha = 0.0f; } completion:^(BOOL finished) { self.hidden = YES; - [_delegate dismissedPopLabel:self]; + if (_delegate && [_delegate respondsToSelector: @selector(dismissedPopLabel:)]){ + [_delegate dismissedPopLabel:self]; + } }]; } @@ -350,7 +353,7 @@ - (void)drawRect:(CGRect)rect - (void)buttonPressed:(id)sender { UIButton *button = (UIButton *)sender; - if (_delegate != nil) { + if (_delegate && [_delegate respondsToSelector: @selector(didPressButtonForPopLabel:atIndex:)]) { [_delegate didPressButtonForPopLabel:self atIndex:button.tag]; } [self dismiss]; From 123e8beb2b67147f4e0d39ff058be31c1a508b75 Mon Sep 17 00:00:00 2001 From: yourcodesucks Date: Sun, 22 Mar 2015 21:27:30 -0400 Subject: [PATCH 2/3] Update MMPopLabel.m support for MMPopLabelNoArrow option --- Classes/ios/MMPopLabel.m | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/Classes/ios/MMPopLabel.m b/Classes/ios/MMPopLabel.m index 64bcb6e..a010114 100644 --- a/Classes/ios/MMPopLabel.m +++ b/Classes/ios/MMPopLabel.m @@ -318,19 +318,22 @@ - (void)drawRect:(CGRect)rect { //// General Declarations CGContextRef context = UIGraphicsGetCurrentContext(); - + [_labelColor setFill]; + //// Tip Drawing - CGContextSaveGState(context); - if (_arrowType == MMPopLabelBottomArrow) { - CGContextTranslateCTM(context, _viewCenter.x, rect.size.height - kMMPopLabelTipPadding); - } else if (_arrowType == MMPopLabelTopArrow) { - CGContextTranslateCTM(context, _viewCenter.x, kMMPopLabelTipPadding); - } - CGContextRotateCTM(context, -45 * M_PI / 180); + if (_arrowType != MMPopLabelNoArrow) { + CGContextSaveGState(context); + if (_arrowType == MMPopLabelBottomArrow) { + CGContextTranslateCTM(context, _viewCenter.x, rect.size.height - kMMPopLabelTipPadding); + } else if (_arrowType == MMPopLabelTopArrow) { + CGContextTranslateCTM(context, _viewCenter.x, kMMPopLabelTipPadding); + } + CGContextRotateCTM(context, -45 * M_PI / 180); - UIBezierPath* tipPath = [UIBezierPath bezierPathWithRect: CGRectMake(0, 0, 11, 11)]; - [_labelColor setFill]; - [tipPath fill]; + [[UIBezierPath bezierPathWithRect: CGRectMake(0, 0, 11, 11)] fill]; + + CGContextRestoreGState(context); + } CGContextRestoreGState(context); @@ -340,7 +343,6 @@ - (void)drawRect:(CGRect)rect rect.size.width, rect.size.height - kMMPopLabelTipPadding * 2) cornerRadius:kMMPopLabelCornerRadius]; - [_labelColor setFill]; [viewBackgroundPath fill]; } From 35f902a24d861e86d58916eee0d0aecbef7a5aec Mon Sep 17 00:00:00 2001 From: yourcodesucks Date: Sun, 22 Mar 2015 21:28:35 -0400 Subject: [PATCH 3/3] Update MMPopLabel.m --- Classes/ios/MMPopLabel.m | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Classes/ios/MMPopLabel.m b/Classes/ios/MMPopLabel.m index a010114..9c71ca7 100644 --- a/Classes/ios/MMPopLabel.m +++ b/Classes/ios/MMPopLabel.m @@ -228,7 +228,7 @@ - (void)popAtView:(UIView *)view position = CGPointMake(position.x, center.y + self.frame.size.height / 2 + view.frame.size.height / 2 + kMMPopLabelViewPadding); } - CGPoint centerPoint = CGPointMake(position.x, position.y); + CGPoint centerPoint = CGPointMake(position.x, position.y); self.center = position; _viewCenter = CGPointMake(view.center.x - self.frame.origin.x - 8, view.center.y);