我想要一个按钮随机出现并让用户点击它。但是,如果他们没有在适当的时间内按下它,它就会消失,我希望它移动到不同的位置。但是,每当我不点击它时,它就会回到屏幕上的相同位置。这是我的代码。
-(IBAction)randomRed:(id)sender
{
[self redDot];
CGRect senderFrame = [sender frame];
CGRect superBounds = [[sender superview ] bounds];
senderFrame.origin.x = (superBounds.size.width - senderFrame.size.width) * drand48();
senderFrame.origin.y = (superBounds.size.height - senderFrame.size.height) * drand48();
[sender setFrame:senderFrame];
counter = counter-1;
[self performSelector:@selector(showRedDot) withObject:nil afterDelay:1.0];
}
-(void)startRedDot
{
if (counter ==0)
redDot = [NSTimer scheduledTimerWithTimeInterval:4.0
target:self
selector:@selector(showRedDot)
userInfo:nil
repeats:YES];
}
-(void)showRedDot
{
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:1.0];
[redButton setAlpha:1];
[UIView commitAnimations];
[self performSelector:@selector(redDot) withObject:nil afterDelay:1.0];
}
}
-(void)redDot
{
[UIView beginAnimations:nil context:NULL];
[UIView setAnimationDuration:0.5];
[redButton setAlpha:0];
[UIView commitAnimations];
}
答案 0 :(得分:0)
drand48()是一个种子随机生成器,所以它只是伪随机的。在程序开始时,可以调用srand48(int),然后在需要随机数时,使用drand48()。在srand48(int)中使用的整数是随机数的“种子”;也就是说,每次使用该种子时,“随机”数字的顺序都是相同的。
你说不是那么随意吗?如果你想要更多的东西,试试arc4random()。为了使生活更轻松,您可以使用(arc4random()%x)获取0 - (x-1)范围内的随机数。
希望这有帮助!