您可以尝试将superview的各种UIView方法中的触摸事件转发到scrollview,看看是否可行.例如:
- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
[scrollView touchesBegan:touches withEvent:event];
}
// etc
Run Code Online (Sandbox Code Playgroud)
或者您可以尝试在superview上使用UIPanGestureRecognizer,并在获取pan事件时显式设置滚动视图偏移.例如:
- (void)handlePan:(UIPanGestureRecognizer *)pan
{
scrollView.contentOffset = [pan translationInView:scrollView];
}
// Or something like that.
Run Code Online (Sandbox Code Playgroud)
尝试子类化UIScrollView和 覆盖,hitTest:withEvent:以便UIScrollView拾取触及其边界之外。像这样的东西:
@interface MagicScrollView : UIScrollView
@end
@implementation MagicScrollView
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
// Intercept touches 100pt outside this view's bounds on all sides
if (CGRectContainsPoint(CGRectInset(self.bounds, -100, -100), point)) {
return self;
}
return nil;
}
@end
Run Code Online (Sandbox Code Playgroud)
您可能还需要覆盖pointInside:withEvent:的UIScrollView的上海华盈,这取决于你的布局。
有关更多信息,请参阅以下问题:interaction over bounds of uiview
| 归档时间: |
|
| 查看次数: |
2876 次 |
| 最近记录: |