UIButton出现奇怪的高亮动画



我有一个包含8个uibutton的IBOutletCollection设置。所有的按钮都有"显示触摸高亮"属性设置,所以当触摸时它们会发出白色的光。

当我触摸按钮时,我将其设置为隐藏。然后,当三个按钮被隐藏时,我调用一个方法,通过IBOutletCollection枚举并隐藏任何隐藏的按钮。

奇怪的是,我触摸的第三个按钮,当它被隐藏时(不管它是8个中的哪一个)会以轻微的动画重新显示。它发出短暂的白光,好像被高亮了一样?

为什么只有其中一个不被隐藏的时候会发出白光?下面是我用来取消隐藏

的代码
for (UIButton *stockButton in stockButtonCollection) {               
    [stockButton setBackgroundImage:[UIImage imageNamed:@"original.png"] forState:UIControlStateNormal];
        if (stockButton.hidden) stockButton.hidden = FALSE;
}

检查该按钮是否没有"同时"检测到两次触摸。如果是这种情况,禁用按钮,同时隐藏它将解决您的问题。

尝试在取消隐藏按钮之前添加一点延迟,比如0.5秒。这将允许动画完成显示触摸高亮。你可以摆弄这个数字,也许可以把它降低到0.3左右。

像这样

    [self performSelector:@selector(unhideButtons) withObject:nil afterDelay:0.5f];

最新更新