ios button超出父视图如何响应事件

来源:互联网 发布:让mac电脑翻墙 编辑:程序博客网 时间:2024/05/22 06:18


 今天中午吃饭的时候,公司一哥们突然问了我一句,怎么做一个超出tabBar高度的按钮,而且还能响应事件,吃完饭之后,我思索了一下,决定动手试试,其实逻辑很简单,只需要继承UITabBarController,重新自定义一个TabBarController就基本OK了,这里只贴出部分代码。

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event{   UIView *view = [super hitTest:point withEvent:event];  NSLog(@"1-----%f------%f",point.x,point.y);  // 将point的x,y从以self为坐标系转换到以self.fb为坐标系进行参考  // self.fb是一个按钮  CGPoint buttonPoint = [self.fb convertPoint:point fromView:self];  NSLog(@"2-----%f------%f",buttonPoint.x,buttonPoint.y);  if ([self.fb pointInside:buttonPoint withEvent:event]) {    return self.fb;  }  return view;}

主要是重写这个方法,楼主比较懒,写的比较简单,只是告诉大家基本的思路。

注意,比较难懂的就是如何巧妙的转换坐标系。


关于坐标系之间的转换,楼主正在研究,一定会尽快跟大家分享的。


下载地址:https://github.com/likelin/TabbarCustomDemo.git


0 0