TouchDelegate 是个挺有意思的小玩意,它可以帮助我们让某个控件处理比它实际占用空间更大的触摸消息。
之前,我曾经看到过一个 app,上面有一个小图标共用户拖动操作,因为图标太小,经常点不到,当时我想到的处理方案是把图标改大,这样多少会导致 UI 发生变化。现在借助 TouchDelegate 我可以更方便的修正这个 bug,并且无需改动 UI。
使用TouchDelegate的方法是
1\. 构造TouchDelegate实例delegate,参数为需要修改作用范围的控件view1和增大后的rect。
2\. 在view1的祖先控件view2上设定delegate。
需要注意的是,如果touch事件被view2或者view2的某个子控件消耗掉了,那么delegate就无法起效了。原因的话,描述起来篇幅过长,请自行参考[Android](http://lib.csdn.net/base/android "Android知识库")的消息分派机制(google可以找到很多资料)。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于