Liang
Liang
可能是你刷新的方式不对。如果你不是要重置页面,就不要调用`SwipeTableView`的`-reloadData:`,此时若只是刷新当前的 `itemview`,就只需要更新数据源,然后调用当前`itemView`自己的刷新就行了,比如,table\collection 就直接调用 table\collection 的`-reloadData:`方法。
刚才测了一下,确实有这个问题。 目前,使用 MJ 的 backfooter 便会造成这个问题。 问题出现在 mj 结束刷新动画改变 inset 时造成的。在2.x 版本中不会对滚动中的 item 的 offset 做存储,所以在刷新之后,swipe 在 KVO 中不能对 offset 做保存恢复,而mj 对 insert 的动画处理导致 offset 根据内容重新调整。同时,3.0版本中,由于 inset 变化出发 scrollview 的滚动代理,当前...
很抱歉没有 demo。STCollectionViewFlowLayout的继承需要按照一定要求写,文档中有写 STCollectionViewFlowLayout 解决的主要是能给 collectionview 增加一个顶部 headerview。如果你自己自定义的 layout 也能解决这个问题,可以不用 STCollectionViewFlowLayout。 另外,如果可以处理好 contentInset 的话,master 版本尝试不设置宏、3.x 分支才采用默认配置,这样顶部的公共 header 会采用 collectionview 的 contenInset.top 的值。这样可以不用 STCollectionViewFlowLayout
这个通常需要考虑交互,我研究一下。回头给你回复
这个功能已经解决,在点击header的时候,对当前item的offset与inset(或者tableHeaderView的height进行调整),具体代码如下 ``` objc // tap to change header's frame - (void)tapHeader:(UITapGestureRecognizer *)tap { CGFloat changeHeight = 50; // or -50, it will be parallax. UIScrollView * currentItem = _swipeTableView.currentItemView; #if...
我不是很明白你的意思。 设置了`shouldAdjustContentSize`之后,默认就是保持内容的滚动范围至少是整个bounds的高度,也就是无论内容多少,至少可以滑动到顶部悬停。对于你说的这个底部的留白,我太明白是什么情况
如果你说的情况,我的demo中也有的话。那就是,demo中专门提供了内容少(cell行数少)的情况,在设置`shouldAdjustContentSize`为YES的时候,第一行正好是可以滚动到顶部的。如果取消这个功能,不用自适应contentSize,不用设置`shouldAdjustContentSize`就可以了(`shouldAdjustContentSize`默认为NO)
contentSize的改变只有设置了`shouldAdjustContentSize`之后,才会在KVO中对contentSize做自适应的处理(改变contentSize也是在这里)。否则,每个item的contentSize都是由自己的数据源内容决定的。如果没有设置自适应的属性,你说的滑动一下contentSize变化是怎么回事啊?这种情况,是不主动改变contentSize的。不过如果内容很少,从内容多的界面滑动过去之后,而且之前的界面向上滑动了,之后的界面虽然一开始是保持对齐的。但是在第二次触碰界面的时候由于当前item的contentSize只是frame的size,就会出现回弹。
这个没办法设置动画的,第一次滑动后只是修改offset对齐位置。再次触碰后,回弹是tableview自己的手势触发时恢复offset导致的(因为之前的offset已经超过了item的contentSize)。
请问你是点击segment后,设置swipetableview滚动到相应item的index(调用`scrollToItemAtIndex:animated:`)后,依然是这样吗?