有人可以告诉我为什么这不起作用吗?:
//Changing the Images
- (void) squareOneColour {
NSUInteger r = arc4random_uniform(5);
[self.squareOne setBackgroundImage:[self.colorArray objectAtIndex:r] forState:UIControlStateNormal];
}
//Moving buttons
- (void) squareOneMover {
NSUInteger r = arc4random_uniform(3);
[self.squareOne setHidden:NO];
CGPoint originalPosition = self.squareOne.center;
originalPosition.y = -55;
[self.squareOne setCenter:originalPosition];
CGPoint position = self.squareOne.center;
position.y += 760;
[UIView animateWithDuration:r + 3
delay:0.0
options:UIViewAnimationOptionAllowUserInteraction
animations:^{
[self.squareOne setCenter:position];
}
completion:^(BOOL complete) {
if (complete) {
[self squareOneColour];
[self squareOneMover];
}
}
];
}
我试图让UIButton
在屏幕上制作动画,并在动画完成时重复,但背景不同。上面的代码似乎应该可以工作,但第二个动画永远不会完成。 (UIButton
动画一次,然后一切都停止了)。我已经尝试将下面显示的代码(进入完成块),使用外部NSUInteger
方法为r创建一个随机数,但它永远不会起作用。但是当我用不同的数字替换r时它会起作用,比如1或2。
答案 0 :(得分:0)
我找到了答案。在玩完之后,我发现我希望UIButton
执行的功能仅适用于UIImageView
。我想我必须在UIImageView
答案 1 :(得分:0)
你踩着自己的脚。走出runloop的下一个循环,一切都会很好:
[self squareOneColour];
dispatch_async(dispatch_get_main_queue(), ^{
[self squareOneMover];
});