Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
kaioser opened this issue Aug 28, 2019 · 16 comments

Comments

@kaioser
Copy link

kaioser commented Aug 28, 2019

具体流程是这样:
下面的四个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
Copy link
Author

kaioser commented Aug 28, 2019

@ChenYilong demo中并未发现此问题

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

@BeingCode
Copy link

遇到同样的问题

@BeingCode
Copy link

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

@inascf
Copy link
Contributor

inascf commented Oct 14, 2019

@theHeroisBack @BeingCode 可以尝试#451

@ChenYilong
Copy link
Owner

1.28.4版本已经发布,修复该问题.感谢 @inascf 给出的解决方案. 详情: d439699

@kaioser
Copy link
Author

kaioser commented Nov 18, 2019

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

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

不知道是哪里的问题

@inascf
Copy link
Contributor

inascf commented Nov 19, 2019

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

@kaioser
Copy link
Author

kaioser commented Nov 19, 2019

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

@inascf
Copy link
Contributor

inascf commented Nov 19, 2019

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

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

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

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

@kaioser
Copy link
Author

kaioser commented Nov 19, 2019

@inascf 好的

@inascf
Copy link
Contributor

inascf commented Nov 19, 2019

@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

@kaioser
Copy link
Author

kaioser commented Nov 19, 2019

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

@ChenYilong ChenYilong reopened this Nov 19, 2019
@inascf
Copy link
Contributor

inascf commented Nov 20, 2019

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

@kaioser
Copy link
Author

kaioser commented Nov 20, 2019

@inascf 好的

@sunzhan123
Copy link

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

@sunzhan123
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants