让自定义视图拥有UISearchBar在UITableView上面自带的吸附效果

简介: 引言:有时候,在UITableView的顶部,也就是HeaderView上面会有一些附加功能,例如常见的搜索功能,或者是一些数据类型的筛选.一般情况我们会把这个附加的功能视图放在UITableView的tableHeaderView上面.

引言:

有时候,在UITableView的顶部,也就是HeaderView上面会有一些附加功能,例如常见的搜索功能,或者是一些数据类型的筛选.

一般情况我们会把这个附加的功能视图放在UITableView的tableHeaderView上面. 

此时你尝试把系统的UISearchBar设定为tableHeaderView时.UITableView尽然自动实现了一个隐藏显示的吸附功能.

这个小小的功能特性对于体验来说还是不错的.还有就是我们在初始化展示界面时,默认不想让用户看到附加功能.

可是,当我们把tableHeaderView设定为自定义的视图时. 这个吸附功能就自己消失了(这是多么让人失望的一件事情).


博主我尝试以自己的思路去完成这个功能. 那么就需要对这个吸附功能去分析它的实现原理.

在将tableHeaderView拖动到可见区域时,我需要调整UIScrollView的contentOffect或contentInset.

为此我尝试着添加观察者去监听这两个属性的变动情况以做出这个功能.

可是经过多次努力,最终失败了. 非常多的瑕疵,而需要应变的场景又变化多样. 其实博主对于此非常不甘心呐,但因为时间关系又无可奈何.



好了,上面讲了一堆还是没进入重点,现在呢,就是既能够使用自定义视图,又能够拥有那种有趣的吸附功能.

这里用一个成语来比喻一下我实现这个功能的方式:草船借箭(有别的更好的词,欢迎留言)

既然系统在UISearchBar上面已经把这个功能给实现了,我为什么不好好利用一下呢?



目录
相关文章
|
6月前
|
XML Java API
23. 【Android教程】轮播滚动视图:ViewFlipper
23. 【Android教程】轮播滚动视图:ViewFlipper
186 2
|
iOS开发
iOS开发 - 让tableView不能下拉刷新,可以上拉加载
iOS开发 - 让tableView不能下拉刷新,可以上拉加载
324 0
|
iOS开发 开发者
iOS开发中UITableViewCell点击时子视图背景透明的解决方法
iOS开发中UITableViewCell点击时子视图背景透明的解决方法
231 0
iOS开发中UITableViewCell点击时子视图背景透明的解决方法
unity3d-ngui UIScrollView 滚动方向与滚轮相反
生成一个滚动面板之后发现滚轮向上滚,界面向下;滚轮向下界面向上。在编辑窗口里发现这个选项 本来是-2,修改成正数就可以了。   http://ju.outofmemory.cn/entry/146754
|
iOS开发
iOS开发之UIScrollView无限滚动
UIScrollView 的无限滚动主要应用在图片轮播器、欢迎界面等场景。首先需要说明的是,文本所讲的是一种"笨办法",但是好理解且容易实现,在图片不多的时候用它也无妨。
986 0
|
Android开发
自定义布局实现侧滑菜单2
我们在上一节已经说了侧滑菜单的实现原理,并且实现了单侧菜单,这一节我们就完善项目,实现双向侧滑菜单。原理我们都说了,不明白的看上节,好了,直接上代码 /** * 这个类和SlidingLayout作用一样,只是没有实现触摸监听事件,直接在121行设置实现了 */ public class SlidingLayout1 extends LinearLayout { /** * 滚动显示和隐藏左侧布局时,手指滑动需要达到的速度。
827 0