今天優(yōu)化項目的時候發(fā)現(xiàn)一個需要優(yōu)化的地方,就是一個scrollerview,上面有很多頁面,滑動到最左側(cè)時沒有側(cè)拉返回的功能,只有點擊左上角返回按鈕才能返回,這是因為scrollerview吸收了系統(tǒng)的側(cè)拉手勢,使手勢不能傳遞下去,這個問題一直都存在但我一直也沒太在意,到了今天才決定優(yōu)化一下.
首先我在viewDidLoad中加入這句話.
[self.scrollView.panGestureRecognizer requireGestureRecognizerToFail:self.navigationController.interactivePopGestureRecognizer];
加上這句話后是可以在scrollerview上面?zhèn)壤祷亓?但是不管當前頁面是不是最左邊都可以側(cè)拉返回,我需要的是在最左側(cè)的時候才可以側(cè)拉返回,不是最左側(cè)時就正炒〉眨滑動.然后我看了看簡書的個人界面發(fā)現(xiàn)它是對scrollview的scrollView.contentOffset.x進行監(jiān)聽,當scrollView.contentOffset.x小于某個值的時候直接pop,這個跟我想要也不太一樣.默默抽上一根煙后,我突然想到了.代碼如下:
/** 滑動結(jié)束后調(diào)用 */
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
if (scrollView.contentOffset.x <= 0) {
//滑動結(jié)束后如果scrollview是滑動了最左側(cè)的話那么就讓它可以側(cè)拉返回
self.navigationController.interactivePopGestureRecognizer.enabled = YES;
}else
{
//否則就不能側(cè)拉返回
self.navigationController.interactivePopGestureRecognizer.enabled = NO;
}
}
}
好了,思路就是這樣,如果有什么不對的地方希望大家能幫忙指出,謝謝大家