GithubHelp home page GithubHelp logo

加载数据源不足以让tableView充满整个屏幕的时候,点击菜单按钮头部下坠为初始高度问题 about hvscrollview HOT 19 OPEN

spstore avatar spstore commented on May 18, 2024
加载数据源不足以让tableView充满整个屏幕的时候,点击菜单按钮头部下坠为初始高度问题

from hvscrollview.

Comments (19)

SPStore avatar SPStore commented on May 18, 2024 1

爱奇艺的效果逻辑挺复杂的,尽管我写了很多注释,但我也是怕自己日后忘记,别人未必看得懂我注释的意思

from hvscrollview.

SPStore avatar SPStore commented on May 18, 2024

from hvscrollview.

Mryawn avatar Mryawn commented on May 18, 2024

请问有什么办法可以解决这个问题吗?目前准备用您的这个Demo实现公司项目要求,其他都满足了,但产品不能接受头部自动回落的效果。我在tableView初始化及刷新的地方重设contentsize,contentOffset都没有效果

from hvscrollview.

SPStore avatar SPStore commented on May 18, 2024

from hvscrollview.

SPStore avatar SPStore commented on May 18, 2024

// 本类中的scrollView的代理方法(目前本类只有一个self.scrollView)

  • (void)scrollViewDidScroll:(UIScrollView *)scrollView {

    if (scrollView == self.scrollView) {
    // 将当前控制器的view带到最前面去,这是为了防止下一个控制器的view挡住了头部
    BaseViewController baseVc = self.childViewControllers[_selectedIndex];
    if ([baseVc isViewLoaded]) {
    [self.scrollView bringSubviewToFront:baseVc.view];
    }
    // 横向切换tableView时头部不要跟随tableView偏移
    CGRect headerFrame = self.headerView.frame;
    headerFrame.origin.x = scrollView.contentOffset.x-kScreenW
    _selectedIndex;
    self.headerView.frame = headerFrame;

      [self configerHeaderY];
      
      // 如果scrollView的内容很少,在屏幕范围内,则自动回落
      dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(0.1 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
          if (baseVc.scrollView.contentSize.height < kScreenH && [baseVc isViewLoaded]) {
              [baseVc.scrollView setContentOffset:CGPointMake(0, 0) animated:YES];
          }
      });
    

    }

}
我的3个demo只有爱奇艺做了自动回落的处理,你在爱奇艺的 demo中找到以上那歌方法,然后删除 dispatch_after那个地方就可以了

from hvscrollview.

Mryawn avatar Mryawn commented on May 18, 2024

您好,我试了您说的爱奇艺方法,注释掉了确实没有问题了。不过我这边产品要求要在菜单栏下面进行刷新,所以选择的您的仿美团来做。里面好像没有这个逻辑在。另外,如果把BaseViewController里面viewDidLoad中rowCount设置为小于一屏显示数量。点击第二个菜单栏button,然后在切换到第一个,上拉加载更过数据,滑动到最上部。再次切换回第二个。头部不会回落但会将上拉刷新的view带出来。

from hvscrollview.

SPStore avatar SPStore commented on May 18, 2024

我待会儿去把这个问题解决掉,问题已经发现了,我现在有点忙

from hvscrollview.

SPStore avatar SPStore commented on May 18, 2024

美团要比爱奇艺简单很多

from hvscrollview.

Mryawn avatar Mryawn commented on May 18, 2024

好的,太感谢了!

from hvscrollview.

SPStore avatar SPStore commented on May 18, 2024

写好了,但是我不想以此需求更新到github,因为我想很少有公司会这样去需求,既然tablView充不满,那自然得回落,假如不回落,那么剩余的 tableView空白的部分展示出来干嘛,这也不符合scrollView的弹性效果,我观察了微博,美团这些大型app,都是必须回落的,而且不回落也很难看,吊在那里。
反正我也按你的公司需求改了一下,你看看有没有问题,看看我以什么方式发给你比较好,github我不更新此需求。
另外我加了一个功能,假如正在刷新,我不允许滑动scrollView左右切换,这也是刚刚观察其余app发现的

from hvscrollview.

SPStore avatar SPStore commented on May 18, 2024

其实有很多app都是不管何时都直接隐藏上拉加载的控件的,你也可以直接隐藏。

from hvscrollview.

Mryawn avatar Mryawn commented on May 18, 2024

那麻烦您发下我QQ邮箱吧,[email protected]。还有一个不情之请,可以麻烦您把跟改的地方标注下吗?我想学习下。 万分感谢,您帮了我的大忙了!

from hvscrollview.

SPStore avatar SPStore commented on May 18, 2024

你关闭了数字邮箱

from hvscrollview.

Mryawn avatar Mryawn commented on May 18, 2024

您好,实在不好意思。什么时候关的都不知道了。现在可以了

from hvscrollview.

SPStore avatar SPStore commented on May 18, 2024

好了

from hvscrollview.

Mryawn avatar Mryawn commented on May 18, 2024

好的,已经收到。非常感谢!

from hvscrollview.

awesomedu avatar awesomedu commented on May 18, 2024

写得非常好,请问作者,点击切换使tableView 不回落,应该怎么改了?

from hvscrollview.

BichKhun avatar BichKhun commented on May 18, 2024

请问作者,仿美团那里,如果当前页面隐藏导航栏或者其他页面隐藏了导航栏,先把头部视图上滑到隐藏了,在进行跳转回来后会导致头部视图掉下来,这个怎么解决

from hvscrollview.

mlp1995 avatar mlp1995 commented on May 18, 2024

怎么改的啊 我们公司也有这个需求..

from hvscrollview.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.