我在滑动UIScrollView
内有一个UIView
。滑动UIView
应该能够到达导航栏的顶部,如果用户仍在拖动他们的手指,内部的UIScrollView
也应该开始向上滑动。同样,如果您向下滑动UIScrollView
并到达内容的顶部,则滑动UIView
应该开始向下滑动。
我无法按照我想要的方式运行此行为。我是专门使用Xamarin.iOS库的,但我可以将Objective-C翻译成C#,如果有人可以指出我正确的方向。
谢谢!
答案 0 :(得分:0)
您可能可以使用自定义委托和使用scrollViewDidScroll:
方法执行此操作。
在此方法中检查您是否已到达UIScrollView的边界...如果您已将所需的任何变量传递给委托(即UIView),并且UIView将以此方式处理此信息你想要的。
示例:
UIView.m
[self.myScrollView setScrollDelegate:self];
ScrollView.h
@protocol ScrollViewDelegate : <NSObject>
@optional
- (void)scrollViewDidScrollToEnd:(needed parameters here);
@end
ScrollView.m
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if ( [HAS REACHED END OF CONTENT] ) {
// Here we want to pass the scrolling position to the delegate
if (!!scrollviewdelegate && [scrollviewdelegate respondsToSelector:@selector(scrollViewDidScrollToEnd:)]) {
[scrollviewdelegate scrollViewDidScrollToEnd:(needed parameters here)];
}
}
}
答案 1 :(得分:0)
首先,滑动UIView应该在其superView的边界内滑动。其次,当滑动UIView时,滚动视图的手势应该失败,直到滑动UIView位于其超视图的顶部或底部。这些可以通过实现UIGestureRecognizer协议的shouldBeRequiredToFailByGestureRecognizer方法来完成。
我在这里上传了sample project。里面的scrollview是一个tableview。