App 定制中间凸出 UITabBar

如题,本文主要介绍的是子控件超出父控件范围后点击超出的部分不能正常响应的问题。
之前,我们的 直播App TabBar 栏是有三个部分,中间部分是开播按钮。如图所示,是这样的:

797D76E2-405F-45EE-BED0-B1EE239776E2.png

后来产品要求把开播按钮悬浮在 TabBar 上,并凸出来,类似于这种效果:

35604B25-2B52-4F7C-B0E5-DDC25CA4B877.png

就是在TabBar上加一个UIButton,但是这样就出现了一个新的问题,点击按钮超出TabBar范围的部分会不响应按钮的点击事件。后来经过研究,发现重写一个系统方法可以解决这个问题。

-(UIView*)hitTest:(CGPoint)point withEvent:(UIEvent*)event {
      if(CGRectContainsPoint(self.liveButton.frame, point) &&self.hidden==NO) {
               return self.liveButton;
       }else{
              return [super hitTest:pointwithEvent:event];
       }

}
这个方法的作用是确定响应点击事件的控件,利用这个方法,可以判断如果点击凸形按钮的位置的时候,返回这个按钮,即响应这个按钮的点击事件即可解决。
同样的,当需要做一个背景透明,里面有若干控件的View,你点击这 View 的透明部分的时候响应父控件的事件,点击子控件的时候响应子控件的事件,用这个方法也可以实现。简言之,这个方法就是在点击控件的时候根据你的需要响应不同控件的事件。
希望对大家有所帮助。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,111评论 25 709
  • 发现 关注 消息 iOS 第三方库、插件、知名博客总结 作者大灰狼的小绵羊哥哥关注 2017.06.26 09:4...
    肇东周阅读 14,636评论 4 61
  • 《白雪公主》这个童话故事,可以说是家喻户晓人尽皆知。故事的内容,大家也都知道:会有魔法的新皇后嫉妒白雪公主的美丽,...
    LH来慧阅读 4,943评论 1 9
  • 互联网公司是思维和模式最先进的群体,比传统的行业超前至少5年以上,人的管理和思想也应该是超前的。但是在满满还是...
    齐豆泡阅读 1,792评论 0 0
  • 周三工作:各班卫生打扫, 周四工作:黏贴作品, 周五:卫生打扫,彩虹布布置,展示桌,PPT,人员安排,室内完成后协...
    李雨晴_aa79阅读 1,144评论 0 0

友情链接更多精彩内容