Tuesday, 28 May 2013

Drog and Drop



- (void)viewDidLoad 
{
    [super viewDidLoad];
    
// create a new button
UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button setTitle:@"Drag One!" forState:UIControlStateNormal];
    
// add drag listener
[button addTarget:self action:@selector(wasDragged:withEvent:) 
     forControlEvents:UIControlEventTouchDragInside];
    
// center and size
button.frame = CGRectMake((self.view.bounds.size.width - 10)/2.0,
                              (self.view.bounds.size.height - 50)/2.0,
                              10050);
    button.tag=0;
    [self.view addSubview:button];
    
    UIButton *button1 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button1 setTitle:@"Drag Two!" forState:UIControlStateNormal];
    
// add drag listener
[button1 addTarget:self action:@selector(wasDragged:withEvent:) 
     forControlEvents:UIControlEventTouchDragInside];
    
// center and size
button1.frame = CGRectMake((self.view.bounds.size.width - 100)/2.0,
                              (self.view.bounds.size.height - 50)/2.0,
                              10050);
    button1.tag=1;
    [self.view addSubview:button1];
    
    UIButton *button2 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button2 setTitle:@"Drag Three!" forState:UIControlStateNormal];
    
// add drag listener
[button2 addTarget:self action:@selector(wasDragged:withEvent:) 
      forControlEvents:UIControlEventTouchDragInside];
    
// center and size
button2.frame = CGRectMake((self.view.bounds.size.width - 210)/2.0,
                               (self.view.bounds.size.height - 50)/2.0,
                               10050);
    button2.tag=2;
    [self.view addSubview:button2];
    
    UIButton *button3 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button3 setTitle:@"Drag Four!" forState:UIControlStateNormal];
    
// add drag listener
[button3 addTarget:self action:@selector(wasDragged:withEvent:) 
      forControlEvents:UIControlEventTouchDragInside];
    
// center and size
button3.frame = CGRectMake((self.view.bounds.size.width - 300)/2.0,
                               (self.view.bounds.size.height - 50)/2.0,
                               10050);
    button3.tag=3;
    [self.view addSubview:button3];
    
    UIButton *button4 = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button4 setTitle:@"Drag Five!" forState:UIControlStateNormal];
    
// add drag listener
[button4 addTarget:self action:@selector(wasDragged:withEvent:) 
      forControlEvents:UIControlEventTouchDragInside];
    
// center and size
button4.frame = CGRectMake((self.view.bounds.size.width - 400)/2.0,
                               (self.view.bounds.size.height - 50)/2.0,
                               10050);
    button4.tag=4;
    [self.view addSubview:button4];



   /* button.frame = CGRectMake((self.view.bounds.size.width - 100)/2.0,
                              (self.view.bounds.size.height - 50)/2.0,
                              100, 50);*/

    
// add it, centered
}

- (void)wasDragged:(UIButton *)button withEvent:(UIEvent *)event
{
// get the touch
    if (button.tag==0) {
        UITouch *touch = [[event touchesForView:button] anyObject];
        
        // get delta
        CGPoint previousLocation = [touch previousLocationInView:button];
        CGPoint location = [touch locationInView:button];
        CGFloat delta_x = location.x - previousLocation.x;
        CGFloat delta_y = location.y - previousLocation.y;
        
        // move button
        button.center = CGPointMake(button.center.x + delta_x,
                                    button.center.y + delta_y);
    }
     if(button.tag==1){
        UITouch *touch = [[event touchesForView:button] anyObject];
        
        // get delta
        CGPoint previousLocation = [touch previousLocationInView:button];
        CGPoint location = [touch locationInView:button];
        CGFloat delta_x = location.x - previousLocation.x;
        CGFloat delta_y = location.y - previousLocation.y;
        
        // move button
        button.center = CGPointMake(button.center.x + delta_x,
                                    button.center.y + delta_y);
    }
    
    if(button.tag==2){
        UITouch *touch = [[event touchesForView:button] anyObject];
        
        // get delta
        CGPoint previousLocation = [touch previousLocationInView:button];
        CGPoint location = [touch locationInView:button];
        CGFloat delta_x = location.x - previousLocation.x;
        CGFloat delta_y = location.y - previousLocation.y;
        
        // move button
        button.center = CGPointMake(button.center.x + delta_x,
                                    button.center.y + delta_y);
    }
    if(button.tag==3){
        UITouch *touch = [[event touchesForView:button] anyObject];
        
        // get delta
        CGPoint previousLocation = [touch previousLocationInView:button];
        CGPoint location = [touch locationInView:button];
        CGFloat delta_x = location.x - previousLocation.x;
        CGFloat delta_y = location.y - previousLocation.y;
        
        // move button
        button.center = CGPointMake(button.center.x + delta_x,
                                    button.center.y + delta_y);
    }
    if(button.tag==4){
        UITouch *touch = [[event touchesForView:button] anyObject];
        
        // get delta
        CGPoint previousLocation = [touch previousLocationInView:button];
        CGPoint location = [touch locationInView:button];
        CGFloat delta_x = location.x - previousLocation.x;
        CGFloat delta_y = location.y - previousLocation.y;
        
        // move button
        button.center = CGPointMake(button.center.x + delta_x,
                                    button.center.y + delta_y);
    }

}

No comments:

Post a Comment