iPhone拖放

时间:2009-06-11 05:58:06

标签: iphone objective-c drag-and-drop

试图为iPhone应用程序提供一些基本的拖放功能。

我目前尝试执行此操作的代码如下:

- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event
{
    UITouch *touch = [touches anyObject];

    CGPoint location = [touch locationInView:self];
    self.center = location;
}

此代码的结果是触摸的UIView在触摸时触摸闪烁。稍微玩了一下之后,我也注意到UIView似乎从屏幕上的0,0位置闪烁到当前触摸的位置。

任何想法我做错了什么?

1 个答案:

答案 0 :(得分:21)

需要在superview的坐标系中指定center属性,但是您已根据子视图询问了触摸事件的位置。而是根据superview的坐标来询问它们,如下所示:

- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event {
    UITouch *touch = [touches anyObject];   
    CGPoint location = [touch locationInView:self.superview]; // <--- note self.superview

    self.center = location;
}