上一博客写了手势代理,在之前也写了个网易首页导航封装类,对它进行优化。
1.每次使用网易首页导航封装类中的MainViewController时,MainViewController的导航栏可能每个页面都不一样,这样可以抽象出一个基类,基类中实现ViewController的创建。使用时继承这个基类,可以设置导航栏。
2.手势返回优化
上一项目胖吴货站做的只有一个MainViewController且为根,所以没有右滑返回的问题,这个闪购订单是被push进来的,所以需要有右滑返回的功能。由于MainViewControll中的ScrollView,这样就使得右滑返回手势和ScrollView的手势重合,这样就识别不了导航栏右滑返回。
解决这个问题的方法是在MainViewController中设置
self.navigationController.interactivePopGestureRecognizer.enabled=YES;
self.navigationController.interactivePopGestureRecognizer.delegate=self;
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
if (self.bottomScrollView.contentOffset.x<0.0&&otherGestureRecognizer.class==[UIScreenEdgePanGestureRecognizer class]) {
return YES;
}
return NO;
}
上面的代理方法在上一博客也有说明,这个方法返回值是用来表示手势是否共存的。只要返回YES,另外就不用管了,因为共存,所以共存,共同响应.也就是说两个gesture recognizers的delegate方法只要任意一个返回YES,则这两个就可以同时识别;只有两个都返回NO的时候,才是互斥的。默认情况下是返回NO。