- (void)setEnableReview:(BOOL)enableReview
{
_enableReview = enableReview;
if ( _enableReview )
{
if ( !self.reviewTapGes )
{
self.reviewTapGes = [[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(reviewTapHandle:)];
}
[self removeGestureRecognizer:self.reviewTapGes];
[self addGestureRecognizer:self.reviewTapGes];
self.userInteractionEnabled = YES;
}
else
{
[self removeGestureRecognizer:self.reviewTapGes];
self.userInteractionEnabled = NO;
}
}
- (void)reviewTapHandle:(UITapGestureRecognizer *)tap
{
UIImageView* bigImageView = [[UIImageView alloc] init];
bigImageView.userInteractionEnabled = YES;
bigImageView.layer.contentsGravity = kCAGravityResizeAspect;
NSURL* url = nil;
if ( self.reviewURL )
{
url = self.reviewURL();
}
[bigImageView sd_setImageWithURL:url
placeholderImage:self.image];
CGRect newframe = [[UIApplication sharedApplication].keyWindow convertRect:self.frame
fromView:self.superview];
bigImageView.frame = newframe;
[[UIApplication sharedApplication].keyWindow addSubview:bigImageView];
[UIView animateWithDuration:0.25 animations:^{
bigImageView.frame = [UIScreen mainScreen].bounds;
bigImageView.backgroundColor = [UIColor blackColor];
}];
UITapGestureRecognizer* bigTap = [[UITapGestureRecognizer alloc] initWithTarget:self
action:@selector(reviewDismiss:)];
[bigImageView addGestureRecognizer:bigTap];
}
- (void)reviewDismiss:(UITapGestureRecognizer *)tap
{
UIImageView* imageView = (UIImageView *)tap.view;
[UIView animateWithDuration:0.25 animations:^{
imageView.alpha = 0;
} completion:^(BOOL finished) {
[imageView removeFromSuperview];
}];
}