如何在UIView上创建可移动标签?

时间:2011-10-22 01:27:12

标签: uiview uikit touchesmoved

我正在尝试在UIView上创建四个可触摸和可移动的标签。

当我以某种方式触碰ifAnimaPart01时,他们都聚集在一个地方,我无法触摸或移动其他标签。

有谁知道我的四个标签为什么会这样做?

我添加了另外4个标签来显示调试的x和y坐标。

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{   


UITouch *touch = [[event allTouches] anyObject];
CGPoint location = [touch locationInView:self.view];

    if ([touch view] == ifAnimPart01){
        ifAnimPart01.center = location;
    }   
    else if ([touch view] == ifAnimPart02){
        ifAnimPart02.center= location;
    }   
    else if ([touch view] == ifAnimPart03){
        ifAnimPart03.center= location;
    }
    else if ([touch view] == ifAnimPart04){
        ifAnimPart04.center= location;
    }

}

- (void)touchesMoved:(NSSet *)touches withEvent:(UIEvent *)event{
    [self touchesBegan:touches withEvent:event];

    UITouch *myTouch = [touches anyObject];
    startPoint1 = [myTouch locationInView:self.view];
    xCoordLabel1.text = [NSString stringWithFormat:@"Line OneX = %f", startPoint1.x];
    yCoordLabel1.text = [NSString stringWithFormat:@"Line OneY = %f", startPoint1.y];
    ifAnimPart01.center = CGPointMake(startPoint1.x, startPoint1.y);

    startPoint2 = [myTouch locationInView:self.view];
    xCoordLabel2.text = [NSString stringWithFormat:@"Line TwoX = %f", startPoint2.x];
    yCoordLabel2.text = [NSString stringWithFormat:@"Line TwoY = %f", startPoint2.y];
    ifAnimPart02.center = CGPointMake(startPoint2.x, startPoint2.y);

    startPoint3 = [myTouch locationInView:self.view];
    xCoordLabel3.text = [NSString stringWithFormat:@"Line ThreeX = %f", startPoint3.x];
    yCoordLabel3.text = [NSString stringWithFormat:@"Line ThreeY = %f", startPoint3.y];
    ifAnimPart03.center = CGPointMake(startPoint3.x, startPoint3.y);

    startPoint4 = [myTouch locationInView:self.view];
    xCoordLabel4.text = [NSString stringWithFormat:@"Line FourX = %f", startPoint4.x];
    yCoordLabel4.text = [NSString stringWithFormat:@"Line FourY = %f", startPoint4.y];
    ifAnimPart04.center = CGPointMake(startPoint4.x, startPoint4.y);
}

- (void)touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event{

}

0 个答案:

没有答案