MichaelHuyp / Bilibili_Wuxianda

高仿Bilibili客户端 - ( ゜- ゜)つロ 乾杯~
MIT License
2.69k stars 693 forks source link

您好,我想问一下关于 Banner 无限滚动的一个小思路 #26

Closed angelen10 closed 8 years ago

angelen10 commented 8 years ago

我想学一下这个 Banner 无限滚动是怎么实现的,然后有一些不理解,就是在YPCycleBanner.m 文件中,你一开始在 layoutSubviews 方法中写到:

_mainView.contentInset = UIEdgeInsetsMake(0, -((_totalItemsCount * 0.5 - 1) * YPScreenW), 0, -((_totalItemsCount * 0.5 - 2) * YPScreenW));

然后在 automaticScroll 的方法写到

_mainView.contentInset = UIEdgeInsetsMake(0, 0, 0, 0);

为什么需要在 layoutSubviews 设置 contentInset 呢?设置了有什么作用,我去掉了好像也没有什么影响的?

MichaelHuyp commented 8 years ago

@angelen10 这个是模仿B站的轮播图的阻力效果。 你可以尝试快速滑动轮播图 看看效果 。 现在主流的无线轮播思想是用CollectionView 放100组图片 然后默认在中间一组,当用户滑动结束 再滚动回中间的那组,但是这样有个不好的地方就是预加载时间太长(100组图片) 添加阻力效果之后,我这个Demo里面只放了四组图片,禁止用户过于快速滑动(通过动态调整contentinset)实现。

angelen10 commented 8 years ago

好,我大概了解了,不过为什么只能是 4 呢?我试了 3,5 都有问题?

MichaelHuyp commented 8 years ago

@angelen10 回头我看下吧 最近刚换了一家公司 忙得很 没时间写这个Demo

angelen10 commented 8 years ago

@MichaelHuyp 好