Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/42.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Iphone 视图拖动序列_Iphone_Storyboard_Drag_Segue - Fatal编程技术网

Iphone 视图拖动序列

Iphone 视图拖动序列,iphone,storyboard,drag,segue,Iphone,Storyboard,Drag,Segue,我想创建一个应用程序,它显示一个可拖动的窗口(购物车)。购物车必须从屏幕底部拖动,并且必须覆盖所有打开的视图。拖动必须跟随您的手指 是否可以使用segues实现此功能?我的想法是通过以下触摸事件执行segue: [self performSegueWithIdentifier:@"Show Cart" sender:self]; 然后,segue实现将打开购物车,将其置于屏幕外,然后将其定位以反映用户手指的移动,直到用户释放它。然后,它将设置动画,或者返回到全屏 It segues不适用于此,

我想创建一个应用程序,它显示一个可拖动的窗口(购物车)。购物车必须从屏幕底部拖动,并且必须覆盖所有打开的视图。拖动必须跟随您的手指

是否可以使用segues实现此功能?我的想法是通过以下触摸事件执行segue:

[self performSegueWithIdentifier:@"Show Cart" sender:self];
然后,segue实现将打开购物车,将其置于屏幕外,然后将其定位以反映用户手指的移动,直到用户释放它。然后,它将设置动画,或者返回到全屏

It segues不适用于此,那么我如何实现它

编辑: 我明白了,我必须更具体一些:)如果我很好地理解了文档,我有三种方式来表达一种观点:

  • 将它推到navigationController:我不想这样,因为购物车存在于我的导航链之上,所以推到那里会让用户感到困惑

  • 以模式显示:不能拖动视图,因为视图后面的对象不显示(它们只是黑色的)

  • 将视图添加到其他视图,如我的应用程序的根导航控制器:尝试了此操作,但当我单击购物车上的某个按钮时,应用程序崩溃。我相信,这是因为我没有初始化或存储好控制器

  • 那么,假设我可以以模态的方式呈现这个视图。但是我怎么才能解决,呈现的触摸也会引起窗户的移动呢?此视图的理想位置在哪里,指向哪个对象?

    来自apple文档:

    “创建自定义分段

    Interface Builder为从一个视图控制器过渡到另一个视图控制器的所有标准方法提供了分段……”

    因此,如果您想通过手指的移动来移动视图(而不是视图控制器),则手指不适合您

    为了通过手指的移动来移动视图,应执行以下操作:

    将平移手势识别器添加到视图(我们称之为视图):

    然后实现viewPanned:方法

    - (void)viewPanned:(UIPanGestureRecognizer *)recognizer{
        if (recognizer.state == UIGestureRecognizerStateChanged)
            theView.center = [recognizer locationInView:self.view];
     }
    
    请注意,此代码假定视图直接添加到viewController.view(其中self指的是viewController)

    来自apple文档:

    “创建自定义分段

    Interface Builder为从一个视图控制器过渡到另一个视图控制器的所有标准方法提供了分段……”

    因此,如果您想通过手指的移动来移动视图(而不是视图控制器),则手指不适合您

    为了通过手指的移动来移动视图,应执行以下操作:

    将平移手势识别器添加到视图(我们称之为视图):

    然后实现viewPanned:方法

    - (void)viewPanned:(UIPanGestureRecognizer *)recognizer{
        if (recognizer.state == UIGestureRecognizerStateChanged)
            theView.center = [recognizer locationInView:self.view];
     }
    
    请注意,此代码假定视图直接添加到viewControllers.view(其中self指的是viewController)