iOS优秀开发文章

iOS 关于ScrollerView 嵌套TableView、S

2019-11-22  本文已影响0人  红凉梦

1.ScrollView 嵌套ScrollerView

首先我们要知道这个代理方法,因为相关的判断就是在这里面是写的

-(void)scrollViewDidScroll:(UIScrollView *)scrollView

具体实现

1.首先你要知道你需求是什么,比如第二个subScrollerView是要在界面滑到一定程度的时候居顶,然后实现第二个subScrollerView中的内容滚动事件
2.计算mainScrollerView滚动到一定程度的的高度- viewHeight
3.设置临界点的时候,mainScrollerView的ContentOffset和scrollEnabled ,和subScrollerView的scrollEnabled
代码如下

#pragma mark - UIScrollViewDelegate
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
     NSLog(@"scrollView=====滚动==%.2F========",scrollView.contentOffset.y);

    if (scrollView == self.bgViewScrollView) {
        CGFloat offset = scrollView.contentOffset.y;
        if (Scale(220) - offset == 0) {
            NSLog(@"==========到家啦========");
            [self.bgViewScrollView setContentOffset:CGPointMake(0, Scale(220))];
            self.bgViewScrollView.scrollEnabled = NO;
        } else if (offset == 0) {
            self.bgViewScrollView.scrollEnabled = YES;

        }else if(offset < 0){
            self.bgViewScrollView.scrollEnabled = NO;
        }
    }
    
}

ScrollView 嵌套TableView

和第一个思路一致,不过在实现代理的时候,要注意是否 scrollerView == tableview,然后进行相关判断
如果需要同时识别多个手势 需要实现代理

/**
 同时识别多个手势

 @param gestureRecognizer gestureRecognizer description
 @param otherGestureRecognizer otherGestureRecognizer description
 @return return value description
 */
- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldRecognizeSimultaneouslyWithGestureRecognizer:(UIGestureRecognizer *)otherGestureRecognizer
{
    return YES;
}
上一篇 下一篇

猜你喜欢

热点阅读