美文网首页
iOS 关于iOS12 tabbar抖动问题

iOS 关于iOS12 tabbar抖动问题

作者: 逝风不名 | 来源:发表于2019-05-31 15:32 被阅读0次
    1. 在Appdeleagte中加入这句话,虽然没有抖动了,但是会造成UI布局问题
    [[UITabBar appearance] setTranslucent:false];
    

    2.自定义TabbarView,继承UITabbarView,添加以下方法,亲测有效

    CG_INLINE BOOL
    OverrideImplementation(Class targetClass, SEL targetSelector, id (^implementationBlock)(Class originClass, SEL originCMD, IMP originIMP)) {
        Method originMethod = class_getInstanceMethod(targetClass, targetSelector);
        if (!originMethod) {
            return NO;
        }
        IMP originIMP = method_getImplementation(originMethod);
        method_setImplementation(originMethod, imp_implementationWithBlock(implementationBlock(targetClass, targetSelector, originIMP)));
        return YES;
    }
    
    + (void)load {
        static dispatch_once_t onceToken;
        dispatch_once(&onceToken, ^{
            if (@available(iOS 12.1, *)) {
                OverrideImplementation(NSClassFromString(@"UITabBarButton"), @selector(setFrame:), ^id(__unsafe_unretained Class originClass, SEL originCMD, IMP originIMP) {
                    return ^(UIView *selfObject, CGRect firstArgv) {
                        
                        if ([selfObject isKindOfClass:originClass]) {
                            // 如果发现即将要设置一个 size 为空的 frame,则屏蔽掉本次设置
                            if (!CGRectIsEmpty(selfObject.frame) && CGRectIsEmpty(firstArgv)) {
                                return;
                            }
                        }
                        
                        // call super
                        void (*originSelectorIMP)(id, SEL, CGRect);
                        originSelectorIMP = (void (*)(id, SEL, CGRect))originIMP;
                        originSelectorIMP(selfObject, originCMD, firstArgv);
                    };
                });
            }
        });
    }
    

    参考链接:https://www.cnblogs.com/fakeCoder/p/9979145.html

    相关文章

      网友评论

          本文标题:iOS 关于iOS12 tabbar抖动问题

          本文链接:https://www.haomeiwen.com/subject/mrtgtctx.html