如果这看起来很含糊,我深表歉意,但是我不确定该怎么写。

我正在尝试构建一个ipad应用程序,该应用程序将允许用户使用他们所需的工具填充工作区。我需要一个让用户将组件拖放到应用程序界面中的示例。因此,例如,如果我有一个用户可以制作表格的应用程序,并且希望用户能够拖动文本框,列表,单选按钮等来制作表格,那么我该怎么做呢?我正在使用的项目将在弹出菜单中,以便用户向上拖动,然后将在该弹出窗口中看到我需要的所有项目。我只是不确定如何让他们从弹出窗口拖动到 Canvas 上,还能够重用同一项目(因此在示例中有3或4个文本框)。这可能吗?谁能指导我有关此的教程?我已经搜索过但找不到任何东西。

如果这样做是错误的或者是愚蠢的任务,请让我知道该怎么做,这是我第一次在此处发布。

谢谢

最佳答案

已经有很多答案可以解释这个问题。
基本上,您可以创建自定义UIView,在触摸后将跟随触摸移动。
像这样的东西:

-(void) touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    _originalPosition = self.view.center;
    _touchOffset = CGPointMake(self.view.center.x-position.x,self.view.center.y-position.y);
}

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

    [UIView animateWithDuration:.001
                          delay:0.0
                        options:UIViewAnimationOptionCurveEaseInOut
                     animations:^ {

                         self.view.center = CGPointMake(position.x+_touchOffset.x, position.y+_touchOffset.y);
                     }
                     completion:^(BOOL finished) {}];
}

-(void) touchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
    CGPoint positionInView = [touch locationInView:self.view];
    CGPoint newPosition;
    if (CGRectContainsPoint(_desiredView.frame, positionInView)) {
        newPosition = positionInView;
        // _desiredView is view where the user can drag the view
    } else {
        newPosition = _originalPosition;
        // its outside the desired view so lets move the view back to start position
    }

    [UIView animateWithDuration:0.4
                          delay:0.0
                        options:UIViewAnimationOptionCurveEaseInOut
                     animations:^ {
                         self.view.center = newPosition
                         // to
                     }
                     completion:^(BOOL finished) {}];

}

类似问题

iPhone App: implementation of Drag and drop images in UIView

Basic Drag and Drop in iOS

iPhone drag/drop

关于ios - 将拖放组件添加到iOS应用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17678735/

10-11 06:40
查看更多