美文网首页iOSiOS Developer程序员
iOS Demo小合集:仿淘宝上拉进入详情页、系统的图像滤镜使用

iOS Demo小合集:仿淘宝上拉进入详情页、系统的图像滤镜使用

作者: DrunkenMouse | 来源:发表于2016-11-16 18:57 被阅读1143次

    目录

    • 仿淘宝上拉进入详情页
    • 系统的图像滤镜使用
    • 万花筒
    • 简单的仿简书个人详情页的上拉菜单
    仿淘宝上拉进入详情页

    仿淘宝上拉进入详情页git链接
    gif:

    仿淘宝上拉进入详情页.gif
    系统的图像滤镜使用

    系统的图像滤镜使用git链接
    gif:

    系统的图像滤镜使用.gif
    万花筒

    万花筒git链接
    gif:

    万花筒.gif
    简单的仿简书个人详情页的上拉菜单

    gif:


    简单的仿简书个人详情页的上拉菜单.gif

    因为实在简单,就不上传git了。这里简单说下吧:

       上面一个View,中间一个View,下面一个tableView,都放在一个scrollView上
       通过对tableView的contentOffset监听,如果向下滚动而scrollView没有滚动到midView显示在左上角,就让scrollView去滚动。方法是禁止tableView的滚动与交互。
       通过对scrollView的contentOffset监听,如果scrollView滚动到midView显示在左上角,就让tableView允许交互与滚动。
    
    核心代码:
    -(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary<NSKeyValueChangeKey,id> *)change context:(void *)context{
        
        //滚动的是tableView而不是scrollView
        if (object == _botTableView) {
            
            CGFloat contentOffsetY = [change[@"new"] CGPointValue].y;
            if (_scrollView.contentOffset.y < _topView.frame.size.height) {
                //禁止tableView滚动与交互
                _botTableView.userInteractionEnabled = NO;
                _botTableView.scrollEnabled = NO;
            }else {
               
                //如果scrollView滚过头了,就重新设置一下偏移值
                if (_scrollView.contentOffset.y > _topView.frame.size.height) {
                    [_scrollView setContentOffset:CGPointMake(0, _topView.frame.size.height)];
                }
                //如果tableView上滚到头了还在滚,就让scrollView滚动
                if (_botTableView.contentOffset.y < 0) {
                    [_scrollView setContentOffset:CGPointMake(0, contentOffsetY) animated:NO];
                }
            }
            
        }else if (object == _scrollView){
            //如果滚动到midView显示在左上角时,就让tableView去滚动
            if (_scrollView.contentOffset.y >= _topView.frame.size.height) {
                _botTableView.userInteractionEnabled = YES;
                _botTableView.scrollEnabled = YES;
            }
        }
        
        else {
            [super observeValueForKeyPath:keyPath ofObject:object change:change context:context];
        }
    } 
    
    

    相关文章

      网友评论

        本文标题:iOS Demo小合集:仿淘宝上拉进入详情页、系统的图像滤镜使用

        本文链接:https://www.haomeiwen.com/subject/nmvrpttx.html