【发布时间】:2023-10-18 13:54:01
【问题描述】:
我有 UIScrollView 并且滚动视图框架不等于 UIView 框架。因此,在滚动视图框架之外滑动时不会滑动滚动视图内容。但是我希望整个屏幕都响应滚动视图,尽管滚动视图不覆盖全屏。 我知道这可以通过使滚动视图框架等于视图框架来完成。但我不想这样做。我尝试了迄今为止发现的其他可能的解决方案。但没有什么能按我的意愿工作。 我需要使用手势识别器来做到这一点。
以下是我的代码:
override func viewDidLoad() {
super.viewDidLoad()
scrollView.delegate = self
let swipeRight = UISwipeGestureRecognizer(target: self, action: #selector(self.respondToSwipeGesture))
swipeRight.direction = UISwipeGestureRecognizerDirection.right
self.view.addGestureRecognizer(swipeRight)
let swipeLeft = UISwipeGestureRecognizer(target: self, action: #selector(self.respondToSwipeGesture))
swipeLeft.direction = UISwipeGestureRecognizerDirection.left
self.view.addGestureRecognizer(swipeLeft)
}
func respondToSwipeGesture(gesture: UIGestureRecognizer) {
if let swipeGesture = gesture as? UISwipeGestureRecognizer {
switch swipeGesture.direction {
case UISwipeGestureRecognizerDirection.right:
scrollView.panGestureRecognizer.isEnabled = true
case UISwipeGestureRecognizerDirection.left:
scrollView.panGestureRecognizer.isEnabled = true
default:
break
}
}
}
这是我的视图控制器,蓝色背景是滚动视图。滑动手势仅适用于该蓝色区域。但我希望它即使在角落也能通过屏幕工作。 如何使用手势识别器实现它?
【问题讨论】:
标签: ios swift uiscrollview swipe-gesture