在IOS 8中,它具有一项新功能,可在滑动时隐藏栏。所以我尝试了。但是,它禁用了我的其他滑动。代码是这样的:
self.navigationController.hidesBarsOnSwipe = YES;
// The follow code works if I comment out the above line
UISwipeGestureRecognizer *swipe = [[UISwipeGestureRecognizer alloc] initWithTarget:self action:@selector(backBarButtonItemPressed:)];
[swipe setDirection:UISwipeGestureRecognizerDirectionRight];
[swipe setNumberOfTouchesRequired:1];
[self.view addGestureRecognizer:swipe];
[self.webView.scrollView.panGestureRecognizer requireGestureRecognizerToFail:swipe];
有人有类似的问题吗?
navigationController?.hidesBarsOnSwipe = true
navigationController?.hidesBarsOnTap = true
在您的手势识别器上设置一个委托。即实施协议
UIGestureRecognizerDelegate
然后使用适当的方法,例如
gestureRecognizer:shouldRecognizeSimultaneouslyWithGestureRecognizer:
确定两个手势识别器应如何协同工作。您可以通过
获得导航手势识别器self.navigationController.barHideOnSwipeGestureRecognizer
实施UIGestureRecognizerDelegate
并覆盖以下方法:
func gestureRecognizer(gestureRecognizer: UIGestureRecognizer, shouldRecognizeSimultaneouslyWithGestureRecognizer otherGestureRecognizer: UIGestureRecognizer) -> Bool {
return true
}