网易首页导航封装类

简介:

最近来新项目,要做类似新浪那样的,问了下亮哥,亮哥给发了一个demo,做的挺不错的特别是上面的导航,我基本都是在demo的基础上改了下满足了公司的要求,问安卓开发的他们说有第三方,今天闲着没事自己试着进一步的封装了下,同时把源放在了github上,方便以后要做的朋https://github.com/ywcui/ViewPagerndicator

这里不贴源码了,记录下自己遇到的问题。

问题1:由于在底部滑动时会执行UIScrollViewDelegate代理中的scrollViewDidScroll方法,而我在方法里面让导航栏滑动了, 但在执行导航栏滑动的代码中执行了代理barSelectedIndexChanged;在实现这个代理中我又将下面的滑动的方法执行了这样就造成了循环,这个问题当时试了几次,中午吃饭的时候都在想,想着要让一个不执行对方滑动的方法,回来后试了下是可以的,在执行导航栏滚动的方法加了一个参数做为标记值,若flag=No则执行代理否则不执行这样就能解决了

问题2.在点击导航栏中的按钮时从左向右滑动时,在滑动开始的按钮上有来回晃动一下的效果,动画感觉不太爽,这个问题找了好久,没想到石头设置了下Bottom中的setShowPageWithIndex方法的

参数animated为NO就可以了,这也能体现出找bug的能力自己还是有待提高。动画问题首先应该找动画的地方,而我把这个就忽略了,这个值得思考。

问题3.用滚动条放导航按钮,按钮多时,可能有的会隐藏,怎么让它点屏幕边上的按钮时自动的滑出几个按钮,这样就放方便不用用户用手滑了。

这个我也是看亮哥的demo,首先要知道ScrollView它的contentOffset.x是为0, 这样找到点击按钮的frame,根据点中按钮的frame的x坐标和ScrollView的contentOffset.x做比较, 当大于一定值(屏幕右侧的量)时,根据点击按钮的索引和按钮数组,让ScrollView滚动到点击按钮右边的按钮的位置,这样就能向右自动滑动,同理向左滑动时,滚动到点击按钮左边的按钮的位置。具体看github上YZPTopScrollView中的-(void)selectIndex:(int)index withFlag:(BOOL)flag。

效果图:

相关文章
|
1月前
|
小程序
【微信小程序】-- 页面导航 -- 编程式导航(二十三)
【微信小程序】-- 页面导航 -- 编程式导航(二十三)
|
7月前
|
容器
自定义 behavior - 完美仿 QQ 浏览器首页,美团商家详情页(一)
自定义 behavior - 完美仿 QQ 浏览器首页,美团商家详情页
|
10月前
|
小程序
TDesign电商小程序模板解析02-首页功能(一)
TDesign电商小程序模板解析02-首页功能(一)
|
1月前
|
小程序 API
【微信小程序】-- 页面导航 -- 声明式导航(二十二)
【微信小程序】-- 页面导航 -- 声明式导航(二十二)
|
1月前
|
小程序 JavaScript
【微信小程序】-- 页面导航 -- 导航传参(二十四)
【微信小程序】-- 页面导航 -- 导航传参(二十四)
|
1月前
|
小程序
TDesign电商小程序模板解析02-首页功能
TDesign电商小程序模板解析02-首页功能
|
6月前
|
小程序 API
【 uniapp - 黑马优购 | 首页】小程序首页全局配置(home、网络请求、轮播图、分类...)
【 uniapp - 黑马优购 | 首页】小程序首页全局配置(home、网络请求、轮播图、分类...)
74 0
|
7月前
|
XML Android开发 数据格式
自定义 behavior - 完美仿 QQ 浏览器首页,美团商家详情页(二)
自定义 behavior - 完美仿 QQ 浏览器首页,美团商家详情页
|
9月前
|
移动开发 小程序 JavaScript
微信小程序学习实录5(H5嵌入小程序、map组件、地图调起功能、腾讯百度高德导航页、返回web-view页)
微信小程序学习实录5(H5嵌入小程序、map组件、地图调起功能、腾讯百度高德导航页、返回web-view页)
303 0
|
6月前
|
存储 小程序 API
【 uniapp - 黑马优购 | 购物车页面(2)】如何实现收货地址区域功能、常见问题解决方案
【 uniapp - 黑马优购 | 购物车页面(2)】如何实现收货地址区域功能、常见问题解决方案
157 0