#ios #swift #uiview
Вопрос:
Я создаю свое собственное пользовательское меню. Он перемещается так, как должен, но как только вы начинаете двигаться, например, вправо, влево или вверх, видны углы этого UIView. Как заставить вид перемещаться только вправо и влево? Код приведен ниже под картинками
@objc private func handlePan(recognizer: UIPanGestureRecognizer) {
guard let piece = recognizer.view else { return }
let translation = recognizer.translation(in: piece.superview)
let velocity = recognizer.velocity(in: piece.superview)
switch recognizer.state {
case .began:
print("began translation:(translation) (velocity)")
self.initialCenter = piece.center
case .changed:
print("changed translation:(translation) (velocity)")
let newCenter = CGPoint(x: initialCenter.x translation.x, y: initialCenter.y translation.y)
piece.center = newCenter
case .ended:
print("ended translation:(translation) (velocity)")
default:
print("default")
}
}
@objc func didTapMenuButton() {
navigationController?.isNavigationBarHidden = true
UIView.animate(withDuration: 0.5, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0, options: .curveEaseInOut) {
self.containerView.frame.origin.x = self.isSlideInMenuPresented ? 0 : self.containerView.frame.width - self.slideInMenuPadding
} completion: { (finished) in
self.isSlideInMenuPresented.toggle()
}
}