2016-03-08 16 views
1

我嘗試了很多東西,但無法解決此問題。我有定義如下AVCaptureVideoPreviewLayer的頂部按鈕:uibutton相機預覽圖層在拖動後跳回到其初始位置(UIPanGestureRecognizer手勢)

AVCaptureVideoPreviewLayer *previewLayer = (AVCaptureVideoPreviewLayer *)self.previewView.layer; 

對於按鈕,我所定義的手勢識別爲拖拽:

UIPanGestureRecognizer *focPanRecognizer; 
focPanRecognizer = [[UIPanGestureRecognizer alloc] initWithTarget:self action:@selector(wasDragged:)]; 
[focPanRecognizer setMinimumNumberOfTouches:1]; 
[focPanRecognizer setMaximumNumberOfTouches:1]; 
focPanRecognizer.cancelsTouchesInView = YES; 
[self.focusButton addGestureRecognizer:focPanRecognizer]; 
[self.focusButton setUserInteractionEnabled:YES]; 

拖動通過以下方法處理:

- (void)wasDragged:(UIPanGestureRecognizer *)recognizer 
{ 
    if (recognizer.state == UIGestureRecognizerStateChanged || 
     recognizer.state == UIGestureRecognizerStateEnded) { 
     UIButton *draggedButton = (UIButton *) recognizer.view; 
     CGPoint translation = [recognizer translationInView:self.previewView];  
     CGRect newButtonFrame = draggedButton.frame; 
     newButtonFrame.origin.x += translation.x; 
     newButtonFrame.origin.y += translation.y; 
     draggedButton.frame = newButtonFrame; 
     [recognizer setTranslation:CGPointZero inView:self.previewView]; 
    } 
} 

當我拖動按鈕時,如果關閉相機鏡頭,它會正常拖動。如果相機鏡頭打開,按鈕會立即跳回到原來的位置。

可能是什麼問題?非常感謝幫助。

回答

相關問題