在Xcode中更改背景颜色时,我可以保持UI元素的可访问性吗?

时间:2016-04-25 04:02:36

标签: ios objective-c xcode uianimation

我在Xcode中有一个游戏,在白色背景上有几个UIButton。当用户单击正确的按钮时,我将背景从白色更改为蓝绿色(动画)。我希望允许用户在背景颜色改变的同时继续点击,但看起来直到bg颜色动画运行完毕后才能访问按钮。 有没有办法解决它并将注意力集中在按钮上?背景动画可以在后台进行,与游戏的其余部分无关吗?

提前感谢您对理解这一点的任何帮助。 这是我的代码:

[UIView animateWithDuration:0.3f
animations:^{
self.view.backgroundColor = [UIColor colorWithRed:0.1f green:0.15f blue:0.05f alpha:1.0f];
}
completion:^(BOOL finished){
[UIView animateWithDuration:0.3f
animations:^{
self.view.backgroundColor = [UIColor colorWithRed:1.0f green:1.0 blue:1.0 alpha:1.0f];
}
];
}
];

之前单独的方法添加了所有UIButtons

UIButton *btnI;
[self.view addSubview:btnI];

2 个答案:

答案 0 :(得分:2)

您可以将动画方法与options

一起使用
>>> print("{0}{1:27}{2:39.4f}{3:51.4f}".format('a', 'b', 1.234567, 9.876543))
ab                                                           1.2346                                             9.8765

使用 UIViewAnimationOptionAllowUserInteraction 选项。

来自documentation

+ animateWithDuration:delay:options:animations:completion:

答案 1 :(得分:-1)

使用

dispatch_async(backgroundQueue, {
//change the background colour here
})