问题
-
有时候们会遇到这样的需求,在一个View 上了UIButton,而UIButton是的范围是超出了View的,这时候,如果点击UIButton 是没效果的,如图:在UITabBar上的中间大按钮,点击大按钮tabBar 已外的区域,正常是没效果的
Simulator Screen Shot 2016年6月17日 下午4.55.24.png
解决办法
- 1.自定义UITabBar:建一个继承UITabBar的类:XJTabBar
- 2.在XJTabBar 实现以下方法
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event {
NSLog(@"%@", NSStringFromCGPoint(point));
if (self.clipsToBounds || self.hidden || (self.alpha == 0.f)) {
return nil;
}
UIView *result = [super hitTest:point withEvent:event];
if (result) {
return result;
}
for (UIView *subview in self.subviews.reverseObjectEnumerator) {
CGPoint subPoint = [subview convertPoint:point fromView:self];
result = [subview hitTest:subPoint withEvent:event];
if (result) {
return result;
}
}
return nil;
}
'```
- 3.在自定义的UITabBarController,的- (void)viewDidLoad 方法
调用此方法
/**
* 利用 KVC 把系统的 tabBar 类型改为自定义类型。
*/
- (void)setUpTabBar {
[self setValue:[[CYLTabBar alloc] init] forKey:@"tabBar"];
}
网友评论