#ios #swift
#iOS #swift
Вопрос:
Я пытаюсь реализовать разные направления прокрутки в зависимости от ориентации (проведите пальцем влево для альбомной ориентации и проведите пальцем вверх для портретной ориентации). Это работает, за исключением того, что сначала, когда представление отображается в новой ориентации, вы должны сначала выполнить прокрутку в другой ориентации. Только 1 раз. Можете ли вы помочь мне понять, что происходит?
Это мой код:
override func viewDidLoad() {
super.viewDidLoad()
let swipe = UISwipeGestureRecognizer(target: self, action: #selector (orientation(_:)))
swipe.direction = [.up, .left]
self.view.addGestureRecognizer(swipe)
}
@objc func orientation (_ sender : UISwipeGestureRecognizer) {
if UIDevice.current.orientation.isLandscape {
sender.direction.remove(.up)
swipeLabel.text = "Swipe left to share"
print("je suis landscape et left")
sender.direction = .left
shareScreenShot()
}else if UIDevice.current.orientation.isPortrait {
swipeLabel.text = "Swipe up to share"
print("je suis portrait et up")
sender.direction = .up
shareScreenShot()
}
Комментарии:
1. Вместо того, чтобы требовать жест салфетки для установки направления, почему бы не использовать
viewWillLayoutSubviews
, который будет вызываться при изменении ориентации, для этого?2. Действительно, я обратился к этому решению. Спасибо.