CYLTabBarController icon indicating copy to clipboard operation
CYLTabBarController copied to clipboard

[Q-A]使用方法询问:正常点击最后一个tabbarItem并push一个新页面后再返回,切换成旁边的tab时,图标未切换

Open kaioser opened this issue 5 years ago • 16 comments

具体流程是这样: 下面的四个tabbar的item使用的是lottie的json文件,正常情况下是这样: 屏幕快照 2019-08-28 下午3 54 12

当在“我的”页面随便push一个子页面并返回,这时候切换成旁边的tab时,出现了文字切换了图标并没有切换过来的情况,页面也切换过来了,如图: 屏幕快照 2019-08-28 下午4 05 56

多次测试之后发现: 1、如果不注册中加的plusbutton,只有四个常规tab时,不会出现这种问题 2、只有在点击最后一个tab时出现,并且pop回来时只点击它旁边的tab会出现这种情况 3、并非json文件文件的问题,换成其他的图标也有问题

您知道这可能是哪里导致的问题吗??

kaioser avatar Aug 28 '19 08:08 kaioser

@ChenYilong demo中并未发现此问题

刚才又试了一会,发现是plusbutton的问题,当我不实现plusChildViewController代理方法,而是给plusbutton添加addTarget方法的时候会出现这种问题。 当我设置了plusbutton 的plusChildViewController,并隐藏addTarget方法后,这个问题消失了,那么请问我不想设置plusChildViewController,只想给plusbutton添加一个点击方法,这种需求下怎么避免这个问题呢?

kaioser avatar Aug 28 '19 08:08 kaioser

遇到同样的问题

BeingCode avatar Sep 03 '19 02:09 BeingCode

72811C7C-2076-4B49-85A7-11DA4B0195A1

BeingCode avatar Sep 03 '19 02:09 BeingCode

@theHeroisBack @BeingCode 可以尝试https://github.com/ChenYilong/CYLTabBarController/pull/451

inascf avatar Oct 14 '19 06:10 inascf

1.28.4版本已经发布,修复该问题.感谢 @inascf 给出的解决方案. 详情: https://github.com/ChenYilong/CYLTabBarController/commit/d4396997b749c710be38e301e388389b90b19a39

ChenYilong avatar Nov 18 '19 15:11 ChenYilong

您好,我刚才更新了1.28.4 版本,是我写的不对吗?我这里还是有这个问题,能帮忙看看吗? 我的bug还是这样的: IMG_2987

我的代码是这样写的: 截屏2019-11-19上午2 49 37

不知道是哪里的问题

kaioser avatar Nov 18 '19 18:11 kaioser

@theHeroisBack 能给我一个Demo吗,我看看是啥问题,谢谢。

inascf avatar Nov 19 '19 01:11 inascf

FunctionalTesting.zip @inascf 您好,这是我的demo

kaioser avatar Nov 19 '19 07:11 kaioser

@theHeroisBack 我看了一下,你这个能解决,但是产生的原因我还没有搞清楚,等有时间了我再看看,你可以先尝试这么修改试,这个方案可能只适合你。

// 在下面的这个文件中添加
#import "UIControl+CYLTabBarControllerExtention.h"

// 增加一行
- (void)setSelected:(BOOL)selected {
}

当然这个可能只是临时解决方案,等我有时间了,捋顺了在寻找更优的解决方案

inascf avatar Nov 19 '19 10:11 inascf

@inascf 好的

kaioser avatar Nov 19 '19 10:11 kaioser

@theHeroisBack 其实问题就是下面这段代码产生的

- (BOOL)cyl_isSelected {
    BOOL isSelected = NO;
    NSUInteger tabBarSelectedIndex = self.cyl_tabBarController.selectedIndex;
    NSUInteger tabBarChildViewControllerIndex = self.cyl_tabBarChildViewControllerIndex;
    BOOL defaultSelected = self.isSelected;
    if ((tabBarSelectedIndex == tabBarChildViewControllerIndex) && defaultSelected) {
        //  这里会错误的把PlusButton 后面的那个标记为选中状态,所以没有产生动画效果
        isSelected = YES;
    }
    return isSelected;
}

上面的重写只是让isSelected永远为NO

inascf avatar Nov 19 '19 10:11 inascf

@inascf 嗯嗯了解,你改完了要发新版本吗?

kaioser avatar Nov 19 '19 10:11 kaioser

@theHeroisBack 有时间了我看看吧,这几天比较忙、并且改完需要测试一下对别的有没有影响,你可以先试试这么改能不能修复你的问题,会不会带来新的Bug

inascf avatar Nov 20 '19 01:11 inascf

@inascf 好的

kaioser avatar Nov 20 '19 06:11 kaioser

iPhone 11 上 tababr显示标题和logo重合 怎么解决呀

sunzhan123 avatar Dec 02 '19 03:12 sunzhan123

屏幕快照 2019-12-02 上午11 38 06

sunzhan123 avatar Dec 02 '19 03:12 sunzhan123