quintgao / gkpagescrollview Goto Github PK
View Code? Open in Web Editor NEWiOS类似微博、抖音、网易云等个人详情页滑动嵌套效果
License: MIT License
iOS类似微博、抖音、网易云等个人详情页滑动嵌套效果
License: MIT License
ld: library not found for -lGKNavigationBar
报错
GKPageScrollView.m
原因是, 在这里获取到的 self.frame.size.height 为0
使用方法有点迷糊,能有个简单demo吗
一共有 三个tab,动态,文章,更多
列如 第一次加载,单纯加载 动态这个控制器,但滑动到文件控制器,才加载它。
目前导航栏状态切换需要在- (void)mainTableViewDidScroll:(UIScrollView *)scrollView isMainCanScroll:(BOOL)isMainCanScroll里面自己实现,希望能封装几种常见模式。
您好:
条件:子ViewController有一个固定在底部的view,父ViewController使用GKPageScrollView并添加子ViewController
问题:子ViewController底部的view一开始并不会显示,需要向上滑动一段距离才会显示。这段距离就是GKPageScrollView的headerView的高度。
我想让子ViewController固定在底部的view固定住,除了把view转移到父ViewController上,还有什么方法吗?
在header中添加一个view,,随上下滑动更改view的alpha,发现只要segmentVieW第一次吸附顶部以后,,不管怎么滑动view的alpha都不会改变
使用列表下拉刷新时,如果cell的数量比较多,当滑到下面,然后下拉滑上去,当滑的速度很快,会瞬间回到顶部了,不知是不是就是这样设计的呢?
你好,我发现使用uicollectionview ,如果数据源多的话没问题,数据源少的话会滑不动, 可以使用一个列表中只有一个数据源和20个数据源进行对比,滑到 menu 悬停的时候测试
子控制器如果是UIScrollView的时候,控制器不走scrollViewDidScroll方法
在使用 GKPageScrollView 的非懒加载模式时, 有这样一个场景,:
做过的尝试:
在 SegmentView 的置顶跟非置顶状态切换瞬间,记录当前 mainTabView 的 lastOffset, 然后切换后,重新设置 mainTableView 的 offset 为当前记录的 lastOffset.
请问如何才能做到,切换到 Segment A 后, PageListA 列表的第一个元素处于最顶部的置顶状态,跟淘宝首页类似。
如题
发现self.navigationController 为nil无法push造成的,这个有什么好方法解决?只能传递controller过去?
你好,使用过程中遇到几个问题。
1、如果mainTableView滚动了一段距离,那么点击状态栏回滚顶部以后,上拉的时候头部距离会直接偏移。
2、直接拖拽头部会卡到JXSegment的头部位置,mainTableView不会继承头部滚动的加速度。
3、头部中添加CollectionView的横向滚动,和纵向滚动的手势可以共存,既可以横向滚动也可以纵向滚动,无法保证同一个时间只有一种手势。
4、mainTableView的滚动有时候手势无法响应的问题。
期待您能尽快解决这些存在的问题。
我设置「isDisableMainScrollInCeil = YES」,然后我的头部高度是「1400」
我在临界点快速滚动,「isDisableMainScrollInCeil」不生效
我这个函数里面里面加了判断当前是否mainScrollView 是否已经滚动到临界值
// 临界点
CGFloat criticalPoint = [self.mainTableView rectForSection:0].origin.y - self.ceilPointHeight;
if(self.mainTableView.contentOffset.y >= criticalPoint){
self.isMainCanScroll = NO;
self.isListCanScroll = YES;
}else{
if (self.isAllowListRefresh && offsetY < 0 && self.isCeilPoint) {
self.isMainCanScroll = NO;
self.isListCanScroll = YES;
}else {
self.isMainCanScroll = YES;
self.isListCanScroll = NO;
scrollView.contentOffset = CGPointZero;
if (self.isControlVerticalIndicator) {
scrollView.showsVerticalScrollIndicator = NO;
}
}
}
不知道这样会不会引起其他的问题,如果写错了,感谢指正
// 设置导航item偏移量
if (GKDeviceVersion >= 11.0 && !GKConfigure.gk_disableFixSpace) {
self.layoutMargins = UIEdgeInsetsZero;
for (UIView *subview in self.subviews) {
if ([NSStringFromClass(subview.class) containsString:@"ContentView"]) {
// 修复iOS11 之后的偏移
subview.layoutMargins = UIEdgeInsetsMake(0, self.gk_navItemLeftSpace, 0, self.gk_navItemRightSpace);
break;
}
}
}
这种做法在 iOS 13 中会导致崩溃,崩溃信息如下:
Client error attempting to change layout margins of a private view
试图更改私有视图的布局边距时出现错误
页面中有几个子tableview 当其中一个下啦回到最顶部之后,切换其他页的table 都回到了顶部最顶部。其实这个时候列表页是应该在之前滑动的位置
结构是:一级头部+pageScrollView+2个子控制器,其中一个一级控制器加二级头部高度为0+pageScrollView+子控制器。1.滚动到临界点,2.滚动其他子控制器列表,3.切到是collectionView的子控制器时无法滚动
可以适配下横竖屏吗
如题,标签选择按钮无法响应 但是能滑动切换
由于需求原因,我需要动态创建childVCs,发现滚动紊乱
发现 [self configListViewScroll];在init里处理,就很容易到中第一次进来,设置不成功,建议单独把方法拉出来处理
触点在底部mainscrollView,滑动到吸附位置,下面的列表无法一起滚动?如demo中抖音,触点在上面头部,"作品"那个列表无法一起滚动?
listScrollView 是 UICollectionView 的时候,如果数据源是0,没有走 scrollViewDidScroll 这个代理方法,导致滑动卡顿。
但是同样是数据源没有数据,listScrollView 改成 UITableView,就一切正常。
看了你的 demo,发现有集成 WMPage,但是就用不了 JXCategory,所以有没有考虑加入控制器的缓存,类似 WM 那张操作,但是又能结合 JXCategory的使用?
我想到的解决办法是 给header顶部佳哥navgationbar高度的空白,框架内有什么方法能解决这个问题吗
尝试了子列表和mainTableView的showsHorizontalScrollIndicator设置为NO,都不能隐藏
1.使用懒加载崩溃问题:
使用了JXCategoryView,JXCategoryListContainerView是高度封装的,它自动把列表控制器添加到JXCategoryListContainerViewController上。列表控制器与当前控制器中间隔了一个JXCategoryListContainerViewController,而JXCategoryListContainerViewController没办法实现GKPageListViewDelegate这个代理。造成了
"- (id)pageScrollView:(GKPageScrollView *)pageScrollView initListAtIndex:(NSInteger)index" 这个方法无法返回有效代理。
崩溃输出:reason: 'child view controller:<列表控制器: 0x7fc60dd844e0> should have parent view controller:<当前控制器: 0x7fc60dd2cb30> but actual parent is:<JXCategoryListContainerViewController: 0x7fc60dc678e0>'
2.列表控制器点击self.navigationController为nil
因为1的问题导致列表控制器中的self.navigationController为nil,且没办法通过添加到当前控制器来解决。
可以不使用懒加载,且将当前控制器作为属性传递给列表控制器就没有以上问题,但是有点僵硬!
// 处理左右滑动与上下滑动的冲突
- (void)horizonScrollViewWillBeginScroll;
- (void)horizonScrollViewDidEndedScroll;
代码里面提供的处理左右互动和上下滑动冲突的方法,感觉有些生硬,作者有没有更优雅的处理方式?
v1.3.5
GKPageListContainerCollectionView里面的Cell的frame中的y不等于0,而是等于22,导致内容整体下移22pt,并且底部还保留了22pt,相当于整体内容减少了44pt
PS:GKPageListContainerCollectionView背景色是默认的黑色
能支持 VTMagic 吗? https://github.com/tianzhuo112/VTMagic 感觉性能很好,我试了与GKPageScrollView 结合 但是上下滑动 主视图与子视图 各玩个的。
1、其中一个分页的tableView的cell使用帧动画有问题,
帧动画开始的时候,上下滑动的时候,帧动画会停止。不是cell复用的问题。
以上问题在使用最新的GKPageSmoothView的时候是ok的
2、但是[GKPageSmoothVie refreshHeaderView],默认会滑到顶部
3、GKPageSmoothVie没有提供“DidEndDragging”、“DidEndDecelerating”、“WillBeginDragging”等滚动相关方法
你好, 这个标签header可以可选置顶吗? 一直没有找到 有时候会需要置顶有时候不需要
在一个vc里同时添加了tableview和collectionview之后,滑动tableview正常,很顺畅,切换到collectionview之后上下滑动很卡顿,请问是什么原因?
[self.tableView selectRowAtIndexPath:indexPath animated:YES scrollPosition:UITableViewScrollPositionTop]; 这句话没有有作用 大佬看下
我看版本更新说新增「GKPageTableViewDelegate」,但是我看源代码里面没有这个?
你好,问一个问题。我想简写一个类似的两个scrollview滚动的功能,当mainscrollview滑动到底部,再滑动的时候,childscrollview就不滚动了,代理也不走了。你是怎么做到的啊,我看了你的代码没看到关键点。
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.