gpt4 book ai didi

ios - 将拖放组件添加到 iOS 应用程序

转载 作者:技术小花猫 更新时间:2023-10-29 10:51:10 25 4
gpt4 key购买 nike

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

我正在尝试构建一个 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com