Мне нужно ограничить свой экран, чтобы иметь ограниченное пространство для перетаскивания моего UIView.Это мой UIPanGestureRecognizer:
@IBAction func handlePan(recognizer:UIPanGestureRecognizer) {
let translation = recognizer.translation(in: self.view)
let statusFrame = UIApplication.shared.statusBarFrame
if let recognizerView = recognizer.view {
if recognizerView.frame.origin.x < 0.0 {
recognizerView.frame.origin = CGPoint(x: 0.0, y: recognizerView.frame.origin.y)
}
if recognizerView.frame.origin.y < statusFrame.height {
recognizerView.frame.origin = CGPoint(x: recognizerView.frame.origin.x, y: statusFrame.height)
}
if recognizerView.frame.origin.x + recognizerView.frame.size.width > view.frame.width {
recognizerView.frame.origin = CGPoint(x: view.frame.width - recognizerView.frame.size.width, y: recognizerView.frame.origin.y)
}
if recognizerView.frame.origin.y + recognizerView.frame.size.height > view.frame.height {
recognizerView.frame.origin = CGPoint(x: recognizerView.frame.origin.x, y: view.frame.height - recognizerView.frame.size.height)
}
}
if let centerX = recognizer.view?.center.x, let centerY = recognizer.view?.center.y {
recognizer.view?.center = CGPoint.init(x: centerX + translation.x , y: centerY + translation.y)
recognizer.setTranslation(CGPoint.zero, in: self.view)
}
view.bringSubviewToFront(view1)
recognizer.setTranslation(CGPoint.zero, in: self.view)
}
Я нашел свое решение для ограничения представления здесь, но это устанавливает странные ограничения экрана: я могу перетащить UIView только в небольшую часть экрана, и я не могуисправить это. Плюс, если я попробую на разных устройствах с разными размерами экрана, у них у всех будут разные ограничения.Есть ли способ установить универсальный лимит?
Итак, мои проблемы:
- Fixig screen limit;
- Установка универсального ограничения экрана.
Пожалуйста, если вы можете сказать мне, где я должен изменить свой код, чтобы изменить ограничения.