ChenYilong / CYLTabBarController

[EN]It is an iOS UI module library for adding animation to iOS tabbar items and icons with Lottie, and adding a bigger center UITabBar Item. [CN]【中国特色 TabBar】一行代码实现 Lottie 动画TabBar,支持中间带+号的TabBar样式,自带红点角标,支持动态刷新。【iOS13 & Dark Mode & iPhone XS MAX supported】
MIT License
6.92k stars 1.46k forks source link

v(1.17.13) ios10.3.1 TabbarItem不响应点击事件 #284

Closed HevnChin closed 5 years ago

HevnChin commented 6 years ago
  1. Version:CYLTabBarController (1.17.13)
  2. Language:Objective-C
  3. iOS System Version:iOS10.3.1
  4. Prototype(是否是真机):YES
  5. Issue Type:Bug

1. How to repeat the problem.

在CYLTabBar.m文件中走完这个方法后

HevnChin commented 6 years ago

@all 需要解决方案的同学, 在CYLTabBar 类的方法

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event 

中编写如下代码, 代码位置大约为387行

.........
..........
 return self.plusButton;
        }
    }
    //TODO:ios10.3.1这个地址是错的 [return selectedTabBarButton], 跟系统方法返回不一致[super hitTest:point withEvent:event]
    if(![self.subviews containsObject:self.tabBarButtonArray.firstObject]) {
        ///如果无需重新布局: 调用下面的语法
        self.tabBarButtonArray = [self tabBarButtonFromTabBarSubviews:[self sortedSubviews]];
        ///如果需要重新布局: 调用下面的语法(注意,这样写会造成tabbar icon的晃动显示)
        [self layoutSubviews];
    }

NSArray *tabBarButtons = self.tabBarButtonArray;
.........
........
HevnChin commented 6 years ago

希望 @ChenYilong 在后续的代码发布中,fix掉这个问题

ChenYilong commented 6 years ago

好的,多谢提供方案

liweican1992 commented 6 years ago

碰到了同样的问题 希望可以修复,多谢~

liangxueliang commented 6 years ago

@WSFeng 你的解决方案在 iOS 10.3.3 的 iPhone 5上面不行喔

ChenYilong commented 5 years ago

我在1.24.2版本中做了限制,只有(width >= 10)的subView才会被认为是item,应该已经修复了该问题,请更新确认。 @liangxueliang @WSFeng @liweican1992

ChenYilong commented 5 years ago

228