UIView
끌기에 대한 도움이 필요하면 기본보기 아래의 메뉴보기를 표시하십시오.UIView 끌기
나는 두 개의 UIView
을 가지고 있습니다. menuView
- 메뉴 버튼과 레이블 및 mainView
- menuView
위에 있습니다.
메뉴 항목을 표시하고 기본보기를 특정 위치로 스냅하기 위해 왼쪽 가장자리에서 기본보기를 끌고 싶습니다. 나는 오른쪽으로 끌기를 얻을 수 있지만 왼쪽으로 끌 때 원래 위치로 되돌릴 수는 없습니다.
여기 내 코드는 나와 함께 놀았지만 성공하지 못했습니다. 오른쪽으로 드래그하면 mainView
을 작게 만들려고합니다. 도움을 주시면 대단히 감사하겠습니다.
참고 : PanGesture는 mainView
에 연결됩니다.
@IBAction func dragMenu(_ sender: UIPanGestureRecognizer) {
let mview = sender.view!
let originalCenter = CGPoint(x: self.mainView.bounds.width/2, y: self.mainView.bounds.height/2)
switch sender.state {
case .changed:
if let mview = sender.view {
mview.center.x = mview.center.x + sender.translation(in: view).x
sender.setTranslation(CGPoint.zero, in: view)
}
case .ended:
let DraggedHalfWayRight = mview.center.x > view.center.x
if DraggedHalfWayRight {
//dragginToRight
showMenu = !showMenu
self.mainViewRight.constant = 200
self.mainTop.constant = 50
self.mainBottom.constant = 50
self.mainLeft.constant = 200
} else //dragging left and set it back to original position.
{
mview.center = originalCenter
showMenu = !showMenu
}
default:
break
}
}
안녕 롭, 빠른 회신 감사 :이 방법의 또 다른 미덕은 "쇼"와 다른 기능에서 "숨기기"를 유지하여, 코드가 훨씬 더 읽기 (IMHO)는 것입니다. 이렇게하면 메인 뷰가 화면 밖으로 밀려납니다 ... 메뉴가 열릴 때 메인 뷰가 오른쪽에, 메뉴가 왼쪽에있게하고 싶었습니다. 메인 뷰를 다시 드래그하여 메뉴 뷰를 닫으십시오. 다시 도움을 청합니다. –
나는 알아 냈다. Nvm. 감사 –