ios button超出父檢視如何響應事件
阿新 • • 發佈:2019-02-09
今天中午吃飯的時候,公司一哥們突然問了我一句,怎麼做一個超出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; }
主要是重寫這個方法,樓主比較懶,寫的比較簡單,只是告訴大家基本的思路。
注意,比較難懂的就是如何巧妙的轉換座標系。
關於座標系之間的轉換,樓主正在研究,一定會盡快跟大家分享的。