5

我正在尝试在我的应用程序中将 UIImageView 拖到 iPhone 屏幕上。

目前我设置的拖动功能很好,拖动图像确实可以在屏幕上移动它,问题是你不必拖动图像视图来移动它,你也可以拖动屏幕上的任何地方,它会移动图像。我是这个平台的新手,所以我真的无法考虑如何解决这个问题。我当前拖动图像的代码是:

 - (void) touchesBegan:(NSSet*)touches withEvent:(UIEvent*)event {
    CGPoint pt = [[touches anyObject] locationInView:pig];
    startLocation = pt;


}
- (void) touchesMoved:(NSSet*)touches withEvent:(UIEvent*)event {
    CGPoint pt = [[touches anyObject] locationInView:pig];
    CGRect frame = [pig frame];
    frame.origin.x += pt.x - startLocation.x;
    frame.origin.y += pt.y - startLocation.y;
    [pig setFrame: frame];
}

任何帮助表示赞赏。顺便说一下猪是UIImageView。我还注意到,如果我将图像视图“猪”的用户交互设置为启用,则图像不再可以拖动,但是当它未设置为启用时它是。

4

3 回答 3

0

您至少需要在计时器线程中将其包含在开始/提交动画序列中:

[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.02]  /* 0.02 seconds suration*/

/* move pig coordinates here */

[UIView commitAnimations];

将新动作保存在 touchesMoved 中,然后在计时器线程中处理它们。

于 2009-07-28T07:27:27.733 回答
0

您可以尝试继承 UIImageView 并touchesBegan:直接touchesMoved:在其上实现。然后在 InterfaceBuilder 中选择 UIImageView 的子类。

替代文字 http://img.skitch.com/20090728-xetretcfubtcj7ujh1yc8165wj.jpg

哦,是的,现在您需要再次设置用户交互...

于 2009-07-28T07:31:36.603 回答
0

您可以使用 UIView 类别使其可拖动并定义可拖动区域: https ://github.com/rtoshiro/TXDragAndDrop

于 2015-09-20T02:16:56.127 回答