我有一个包含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];