購物車已經不像以前那種效果了,我們現在的手機端感覺非常的不錯它可以有效果了,下面我們就一起來看一篇關於蘋果開發之iOS加入購物車動畫效果吧。
代碼如下
復制代碼
#pragma mark -購物籃按鈕點擊事件
-(void)shoppingCartButtonAction:(UIButton*)sender
{
if ([[userDef objectForKey:@"id"]isEqualToString:@"0"]) {
[self showHUDTextOnly:@"請登錄後,再進行操作" ];
return;
}
NSDictionary *parameters = @{
@"user_id":[userDef objectForKey:@"id"],
@"gp_id":[NSString stringWithFormat:@"%@",[cell2Array[sender.tag - 101] objectForKey:@"gp_id"]],
@"number" :@1
};
[self defaultRequestwithURL:KAddToCartURL withParameters:parameters withMethod:@"POST" withBlock:^(NSDictionary *dict, NSError *error){
if ([[dict objectForKey:kCode] integerValue]==1) {
//該部分動畫 以self.view為參考系進行
UIImageView *imageView=[[UIImageView alloc]initWithImage:[UIImage imageNamed:@"button_hot_shopping-cart_red-1"]];
imageView.contentMode=UIViewContentModeCenter;
imageView.frame = sender.bounds;
imageView.hidden=YES;
CGPoint point= sender.frame.origin;
imageView.center=point;
CALayer *layer=[[CALayer alloc]init];
layer.contents=imageView.layer.contents;
layer.frame=imageView.frame;
layer.opacity=1;
[self.view.layer addSublayer:layer];
//動畫 終點 都以sel.view為參考系
CGPoint endpoint= CGPointMake(SCREEN_WIDTH*7/10.0, SCREEN_HEIGHT - 22);
UIBezierPath *path=[UIBezierPath bezierPath];
//動畫起點
CGRect rect=[sender convertRect: sender.bounds toView:self.view];
CGPoint startPoint=CGPointMake(rect.origin.x +rect.size.width/2, rect.origin.y +rect.size.height/2);
[path moveToPoint:startPoint];
//貝塞爾曲線中間點
float sx=startPoint.x;
float sy=startPoint.y;
float ex=endpoint.x;
float ey=endpoint.y;
float x=sx+(ex-sx)/3;
float y=sy+(ey-sy)*0.5-400;
CGPoint centerPoint=CGPointMake(x,y);
[path addQuadCurveToPoint:endpoint controlPoint:centerPoint];
CAKeyframeAnimation *animation=[CAKeyframeAnimation animationWithKeyPath:@"position"];
animation.path = path.CGPath;
animation.removedOnCompletion = NO;
animation.fillMode = kCAFillModeForwards;
animation.duration=0.8;
animation.delegate=self;
animation.autoreverses= NO;
animation.timingFunction=[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseIn];
[layer addAnimation:animation forKey:@"buy"];
//更新角標
[self cornerNumber];
}else {
[self showHUDTextOnly:[dict objectForKey:kMessage]];
}
}];
}