Tag: 拖放

iOS – UIPanGestureRecognizer:在animation中拖动

我使用UIPanGestureRecognizer沿用户绘制的path移动一个对象。 但是这个对象是animation,我需要在animation过程中与它交互。 可能吗? 我已经尝试使用UIViewAnimationOptionAllowUserInteraction但没有结果。

iOS拖放到具有子类的另一个视图

我有一个带有UIScrollView(boardScrollView)的RootViewController。 这有一个UIImageView作为子视图来创build一个板(boardImage)。 我可以放大和缩小,工作正常。 也滚动工作正常! 现在,我想拖放其他UIImageViews(Tiles)进出ScrollView。 我已经将UIImageView分类为TileImageView,并将方法touchesBegan,touchesMoved和touchesEnded重写。 拖放工作正常在超视图。 但是我希望能够在RootViewController上的一个IBOutlet的ScrollView上放置Tiles。 我可以拖放瓦片,因为我可以使用superview但是我不知道如何将瓦片添加到boardScrollView。 任何人都知道如何从子类访问RootViewController上的对象? 我应该委托一些东西? 或者设置不同的参数? 代码RootViewController: @implementation RootViewController_iphone @synthesize boardScrollView; @synthesize dragObject; @synthesize boardImage; – (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view from its nib. self.boardScrollView.clipsToBounds = YES; UIImage *image = [UIImage imageNamed:@"greyblue_numbered_15x15_900x900.png"]; self.boardImage = [[UIImageView alloc] initWithImage:image]; self.boardImage.frame = (CGRect){.origin=CGPointMake(0.0f, 0.0f), […]

如何拖动标签,并放在iPhone中的UIToolbarItem

我面临着拖放UILabel的问题。 如何拖动标签(移动这个),并放在任何一个UIToolBar项目(即1或2或3 …),button标题应改变为标签文本。 检查图像的这个问题

如何在iPhone的自定义UIViews上启用UIDragInteraction

我一直在试图使用苹果的新API来启用自定义UIViews上的拖动交互。 我已经设法使用iPad进行testing,但是当我在iPhone 7 – ios 11 beta 3中运行相同的应用程序时,我无法拖动我的自定义UIViews。 我注意到,我们需要在UICollectionView和UITableViews中使用时启用拖动交互 collectionView.dragInteractionEnabled = true tableView.dragInteractionEnabled = true 但我无法find任何文档或任何地方使自定义UIViews使它在iPhone上工作。 有没有人知道一种方法来启用iPhone的自定义UIViews的拖动交互? 谢谢

拖放不删除UIButton

我正在实现一个iPhone应用程序的拖放系统。 到目前为止,我设法实现了可拖动的button,它工作正常。 这是我有的代码: 首先,我将这个动作分配给button: [button addTarget:self action:@selector(imageMoved:withEvent:) forControlEvents:UIControlEventTouchDragInside]; 然后,我创build拖动: – (IBAction) imageMoved:(id) sender withEvent:(UIEvent *) event { NSLog(@"moved"); CGPoint point = [[[event allTouches] anyObject] locationInView:self.view]; UIControl *control = sender; control.center = point; } 但是,我想要实现的是被拖动的button不会从它所在的位置被删除。 所以我想到了一个解决scheme,就是创build一个类似于第一个button的新button,然后移动这个新创build的button。 但是我在执行这最后一部分时遇到了麻烦。 任何帮助? 非常感谢!

通过手势交换单元格的位置

我有我有一个原型单元格和UIImageView UICollectionView我在UICollectionView中显示随机图像。 现在我想通过将它移动到附近的单元格来交换UIImageView的位置。我尝试了轻扫手势和长按手势。下面给出了我已经完成的代码: – (IBAction)LongPress:(UILongPressGestureRecognizer *)sender { if (sender.state != UIGestureRecognizerStateEnded) { return; } CGPoint p = [sender locationInView:self.collectionView]; NSIndexPath *indexPath = [self.coll_out indexPathForItemAtPoint:p]; if (indexPath == nil) { NSLog(@"couldn't find index path"); } else { // get the cell at indexPath (the one you long pressed) UICollectionViewCell* cell =[self.coll_out cellForItemAtIndexPath:indexPath]; // do stuff with […]

拖动注释时callback

我可以拖动我的注释,当我放下它时,我可以读取这个位置。 但是,我需要不断更新我的头衔,我拖动的位置。 我试着添加一个UIPanGestureRecognizer,但是当我拖动注解时不起作用。 拖动注释时,我应该使用什么方法不断调用我的代码? -(void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view didChangeDragState:(MKAnnotationViewDragState)newState fromOldState:(MKAnnotationViewDragState)oldState { CLLocationCoordinate2D annoCoord = view.annotation.coordinate; switch (newState) { case MKAnnotationViewDragStateStarting: NSLog(@"Start dragging annotation"); break; case MKAnnotationViewDragStateDragging: NSLog(@"Dragging annotation"); break; case MKAnnotationViewDragStateEnding: [view setDragState:MKAnnotationViewDragStateNone]; // must be here! else multiple calls NSLog(@"Ending dragging annotation at %f : %f", annoCoord.latitude, annoCoord.longitude); break; case MKAnnotationViewDragStateCanceling: NSLog(@"Cancel dragging annotation"); […]

iOS 11 dropInteraction执行文件的Drop

我怎样才能使用dropInteraction(_ interaction: UIDropInteraction, performDrop session: UIDropSession)接受除图像以外的其他types的文件? 说一下,我从文件应用程序拖动PDF或MP3。 我怎样才能接受这个文件并获取数据? 我以为我可以使用NSURL.self,但似乎只适用于从Safari浏览器拖动的URL和textview。

如何在Sprite Kit中实现鼠标连接?

我正在使用Cocos2d + Box2d for iOS编写的拖放function的实现。 我需要将它移植到Sprite Kit。 逻辑是非常基本的: 当用户触摸屏幕时,在手指下find精灵 在find的精灵和场景的物理体之间创build鼠标关节,将关节的目标设置为触摸的位置 当触摸移动时,更新联合的目标到新的位置 当触摸结束时,移除关节 一切工作都很好。 我喜欢触摸结束时模拟物理的方式 – 拖动的形状的速度取决于拖动的速度和方向,所以当我移动精灵的时候,我的手指离开屏幕,它将继续沿相同的方向移动,但是现在受到影响重力和阻尼。 不幸的是,我无法使用Sprite Kit重现相同的效果。 没有像鼠标关节这样的关节,但我尝试过使用其他关节types。 我几乎成功与SKPhysicsJointFixed – 我创build新的精灵和它之间的联合和拖动精灵,当触摸移动我移动新创build的精灵。 不幸的是,它不能像Cocos2d + Box2d中的鼠标关节那样工作 – 拖动精灵时,其速度总是等于零。 所以,每当我把手指从屏幕上移开时,被拖动的精灵就会立即停下来,并受重力影响而开始下坠。 无论拖动手指时移动的速度有多快,释放拖动的形状后,其行为方式都完全相同。 我的问题是如何在Sprite Kit中实现鼠标连接,或者如何实现如上所述的拖放function? 更新:这是一个box2d鼠标联合的例子,可以给你更清晰的视图,我想要使用Sprite Kit实现: http : //blog.allanbishop.com/wp-content/uploads/2010/09/Box2DJointTutorial1.swf

是否有可能使用iOS 11的拖放来重新sorting多个项目/单元格在UITableView?

我知道当使用新的UITableViewDropDelegate和UITableViewDragDelegate委托时,可以重新sorting单个项目/单元,但是可以支持处理多个项目/单元。 例如,在这个截图中,我持有一个单一的项目: 然后放下细胞放置。 但是,当我抓住多个单元格时,我得到了没有进入的迹象,单元格不会重新sorting: 如果我从另一个应用程序的多个项目,它工作正常,例如从iMessage拖出多个消息: 是否有可能做到这一点,当只有本地项目重新sorting表视图,以便您可以更快地重新sorting? 这是我的代码: UITableViewDragDelegate extension DotViewController: UITableViewDragDelegate { func tableView(_ tableView: UITableView, itemsForBeginning session: UIDragSession, at indexPath: IndexPath) -> [UIDragItem] { return [getDragItem(forIndexPath: indexPath)] } func tableView(_ tableView: UITableView, itemsForAddingTo session: UIDragSession, at indexPath: IndexPath, point: CGPoint) -> [UIDragItem] { return [getDragItem(forIndexPath: indexPath)] } func getDragItem(forIndexPath indexPath: IndexPath) -> UIDragItem { […]