我的应用中的主UIView
包含一个UIScrollView
。我在主视图中添加了UISwipeGestureRecognizer
:
@IBOutlet weak internal var scrollView: UIScrollView!
override func viewDidLoad() {
super.viewDidLoad()
swipeRecognizer = UISwipeGestureRecognizer(target: self, action: #selector(handleSwipes(sender:)))
view.addGestureRecognizer(swipeRecognizer)
}
我已经删除了识别器方法,但是我不知道如何将guest虚拟机传递给scrollview。
func handleSwipes(sender: UISwipeGestureRecognizer) {
if sender.direction == .left {
// Send left swipe to the UIScrollView
} else if (sender.direction == .right) {
// Send right swipe to the UIScrollView
}
}
答案 0 :(得分:2)
您需要的是:
UIScrollView
您可以继承scrollView
并覆盖pointInside:event:
方法
// you should convert this into Swift :(
-(BOOL)pointInside:(CGPoint)point withEvent:(UIEvent *)event {
for (UIView *view in self.subviews) {
if (!view.hidden && view.userInteractionEnabled &&
[view pointInside:[self convertPoint:point toView:view] withEvent:event])
return YES;
}
return NO;
}
然后,您的自定义scrollView
会将手势传播到其下方的其他视图,您可以在mainView
UIScrollView
您可以通过setContentOffset
的{{1}}方法执行此操作。如果你将内容偏移设置在其范围之外,那可能会感到错误,请小心!
但是,恕我直言,最好的解决方案是更改视图层次结构并在滚动视图顶部的视图上聆听滑动手势。