Wes*_*ton 2 cocoa-touch objective-c uipangesturerecognizer uicollectionview uicollectionviewcell
我使用的是UIPanGestureRecognizer一个UIView是一个UICollectionViewCell.我正在使用该translationInView方法获得沿X轴的平移并UIView向左和向右滑动.它工作正常,但现在我无法在CollectionView中上下滚动,如果我的手指在单元格上.有没有办法让PanGestureRecognizer传递垂直滚动到UICollectionView?
我试图复制在Reeder.app for iOS中看到的滑动.
小智 8
一旦UIPanGestureRecognizer您的UIView触摸中的激活不再通过响应者链转发,因此您UICollectionView不再接收触摸.
您可以尝试将您设置为您UIView的代表,UIPanGestureRecognizer并放置是否UIPanGestureRecognizer应该激活的逻辑.你必须在你的UIView中实现委托的方法:
-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer;
Run Code Online (Sandbox Code Playgroud)
例如,使用下面的代码,如果视图的y轴上的速度大于x轴的速度(因此将触摸发送到其UICollectionView下方),则会告诉它不激活
-(BOOL)gestureRecognizerShouldBegin:(UIGestureRecognizer *)gestureRecognizer{
UIPanGestureRecognizer *recognizer = (UIPanGestureRecognizer *)gestureRecognizer;
CGPoint velocity =[recognizer velocityInView:self];
if(abs(velocity.y)>=(abs(velocity.x))){
return NO;
}else return YES;
}
Run Code Online (Sandbox Code Playgroud)
希望这是有帮助的.
| 归档时间: |
|
| 查看次数: |
1388 次 |
| 最近记录: |