從這個問題我的事情你要建立一個類似的功能添加到購物車中的大多數購物應用程序,如亞馬遜,翻轉和卡丁車等..
- (void)viewDidLoad {
[super viewDidLoad];
shoeImageView1 = [[UIImageView alloc]initWithFrame:CGRectMake(46,222, 51 , 51)];
shoeImageView1.image = [UIImage imageNamed:@"shoe.png"];
shoeImageView2 = [[UIImageView alloc]initWithFrame:CGRectMake(150,222, 51 , 51)];
shoeImageView2.image = [UIImage imageNamed:@"shoe1.png"];
shoeImageView3 = [[UIImageView alloc]initWithFrame:CGRectMake(225,222, 51 , 51)];
shoeImageView3.image = [UIImage imageNamed:@"shoe2.png"];
addTOCart = [[UIImageView alloc]initWithFrame:CGRectMake(132,400, 80, 80)];
addTOCart.image = [UIImage imageNamed:@"basket.png"];
[self.view addSubview:addTOCart];
imageViewArray = [[NSMutableArray alloc]initWithObjects: shoeImageView1,shoeImageView2 ,shoeImageView3,nil];
for (int i=0; i<imageViewArray.count; i++) {
[self.view addSubview:[imageViewArray objectAtIndex:i]];
[[imageViewArray objectAtIndex:i]setUserInteractionEnabled:YES];
//[self touchesBegan:imageViewArray[i] withEvent:nil];
}
}
-(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
for(int i=0 ; i< imageViewArray.count; i++)
{
CGPoint pt = [[touches anyObject]locationInView:self.view];
startLocation = pt;
newtemp = [imageViewArray objectAtIndex:i];
UITouch* bTouch = [touches anyObject];
if ([bTouch.view isEqual:newtemp])
{
firstTouchPoint = [bTouch locationInView:[self view]];
oldX = firstTouchPoint.x - [[bTouch view]center].x;
oldY = firstTouchPoint.y - [[bTouch view]center].y;
}
}
}
- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
for(int i=0 ; i< imageViewArray.count; i++)
{
newtemp = [imageViewArray objectAtIndex:i];
//oldLoc = newtemp.frame;
if (CGRectContainsPoint(addTOCart.frame , newtemp.frame.origin))
{
NSLog(@"touched");
dragging = NO;
UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"Cart" message:@"Added to Cart" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil, nil];
[[imageViewArray objectAtIndex:i] setImage:[UIImage imageNamed:@""]];
[imageViewArray removeObjectAtIndex:i];
[alert show];
break;
}
else
{
//[newtemp setCenter:CGPointMake(startLocation.x-oldX, startLocation.y-oldY)];
}
// self.view.userInteractionEnabled= NO;
}
dragging = NO;
}
-(void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
UITouch* mTouch = [touches anyObject];
// if ([mTouch.view isEqual: newtemp]) {
CGPoint cp = [mTouch locationInView:[self view]];
[[mTouch view]setCenter:CGPointMake(cp.x-oldX, cp.y-oldY)];
// }
}
,您可以使用這些代碼來實現這些feauture。使用這些代碼可以將對象拖動到屏幕上的任何位置。您可以使用鏈接。
您是否實現了這個目標?如果您有任何問題,請分享源代碼。提前致謝。 – lazyCoder