在QQ語音通話時游岳,隱藏語音通話界面后會出現(xiàn)一個按鈕可以浮動拖拽身隐,現(xiàn)在先來實現(xiàn)以下按鈕的拖拽功能,稍后再來實現(xiàn)隱藏和進(jìn)入通話界面的轉(zhuǎn)場動畫部分买窟。
第一步:原理圖丰泊。
IMG_0965.jpg
在給控件添加UIPanGestureRecognizer
手勢后,可以在action方法中來限制手勢所添加控件的拖拽范圍始绍,如上圖瞳购,我們把范圍限制在屏幕內(nèi)。
第二步:代碼實現(xiàn)亏推。
#pragma mark 手勢執(zhí)行方法
- (void) handlePan:(UIPanGestureRecognizer*) recognizer
{
CGPoint translation = [recognizer translationInView:self.imageView];
CGPoint viewNewPoint = CGPointMake(recognizer.view.center.x + translation.x,recognizer.view.center.y + translation.y);
//TODO:給拖拽控件設(shè)置范圍
viewNewPoint.y = MAX(recognizer.view.frame.size.height/2, viewNewPoint.y);
viewNewPoint.y = MIN(self.view.frame.size.height - recognizer.view.frame.size.height/2, viewNewPoint.y);
viewNewPoint.x = MAX(recognizer.view.frame.size.width/2, viewNewPoint.x);
viewNewPoint.x = MIN(self.view.frame.size.width - recognizer.view.frame.size.width/2,viewNewPoint.x);
recognizer.view.center = viewNewPoint;
[recognizer setTranslation:CGPointZero inView:self.view];
}
第三步学赛,效果圖。
QQ20170612-101533.gif
代碼不足的地方吞杭,還請多多指教盏浇。