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];
}
}
當我拖動按鈕時,如果關閉相機鏡頭,它會正常拖動。如果相機鏡頭打開,按鈕會立即跳回到原來的位置。
可能是什麼問題?非常感謝幫助。