Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.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
Objective c 更改目标的superview后检测触摸_Objective C_Ios_Uiview_Uiscrollview_Uipangesturerecognizer - Fatal编程技术网

Objective c 更改目标的superview后检测触摸

Objective c 更改目标的superview后检测触摸,objective-c,ios,uiview,uiscrollview,uipangesturerecognizer,Objective C,Ios,Uiview,Uiscrollview,Uipangesturerecognizer,在iOS中,我在两个父UIView之间拖动UIView。我正在使用UIPangestureRecognitor来管理拖动。当拖动仍在进行时,我使用以下命令切换要拖动的视图的父视图: - (IBAction)handlePanGesture:(UIPanGestureRecognizer *)sender { ... [viewBeingDragged removeFromSuperview]; UIView* page2 = [self.view viewWithTag:

在iOS中,我在两个父UIView之间拖动UIView。我正在使用UIPangestureRecognitor来管理拖动。当拖动仍在进行时,我使用以下命令切换要拖动的视图的父视图:

- (IBAction)handlePanGesture:(UIPanGestureRecognizer *)sender {
    ...
    [viewBeingDragged removeFromSuperview];
    UIView* page2 = [self.view viewWithTag:pageTag];
    [page2 addSubview:viewBeingDragged];
    // Now scroll page 2 into view
    [pageContainerScrollView setContentOffset:CGPointMake(xcoord, 0) animated:YES];
    ...
这似乎终止了平移事件。然而,我的手指仍然“向下”。在这一点上,我怎么能检测到我的手指抬起?我尝试了一个单独的UITapGestureRecognitor,如果没有平移,它可以很好地启动,但是如果平移已经开始,它就不会启动

有什么想法吗

试试这个:

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        ...
    }

    UIPanGestureRecognizer *recognizer;
    recognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePanFrom:)];        
    [self addGestureRecognizer:recognizer];
}

您可以找到所有州:

希望有帮助。

试试这个:

- (id)initWithFrame:(CGRect)frame
{
    self = [super initWithFrame:frame];
    if (self) {
        ...
    }

    UIPanGestureRecognizer *recognizer;
    recognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(handlePanFrom:)];        
    [self addGestureRecognizer:recognizer];
}

您可以找到所有州:

希望能有帮助。

我有这个问题。您只需删除以下行:
[viewBeingDrawed removeFromSuperview]

UIView只能有一个superview,因此当您调用
[page2 addSubview:ViewBeingDrawed]
时,将首先从其当前superview中删除
UIView。您只需删除以下行:
[viewBeingDrawed removeFromSuperview]

UIView只能有一个superview,因此当您调用
[page2 addSubview:ViewBeingDrawed]
时,将首先从其当前superview中删除
ViewBeingDrawed
UIView