0

私のコードでは、次のUIScrollViewようにスピンします。

[carousel scrollByNumberOfItems:-35 duration:10.7550f];

[NSTimer scheduledTimerWithTimeInterval:10.7550f 
                                 target:self
                               selector:@selector(randomFinal)
                               userInfo:nil
                                repeats:NO]; 

この部分では、scrollView が停止した後、UP または DOWN のいずれかのランダムな動きをします。

-(void)randomFinal {

    randomBut = arc4random()%5;

    if (randomBut == 0){
 [carousel scrollByNumberOfItems: -1 duration: 4.50f];  
    } else if ( randomBut == 1){
 [carousel scrollByNumberOfItems: 1 duration: 4.50f];  
    } else if (randomBut == 2) {
 [carousel scrollByNumberOfItems: 1 duration: 5.0f];
    } else if (randomBut == 3) {
 [carousel scrollByNumberOfItems: -1 duration: 5.0f];
   } else if (randomBut == 4) {
 [carousel scrollByNumberOfItems:0 duration:0];
    }
}

私が必要としているのは、そのrandomFinal部分を 30% の確率で発生させることです。どうすればいいですか?ありがとうございました。

4

2 に答える 2

0

あなたはこれを試すことができます:

// arc4random_uniform() returns uniformly distributed random number < than upper_bound.
randomNumber = arc4random_uniform(100 + 1);
if(randomNumber <= 30)
    do something;

arc4random_uniform()の呼び出しから生じる乱数は、30%未満の時間である必要があります。

于 2012-07-01T14:18:11.063 に答える
0

あなたは次のように書くことができます:

int shouldCallFinal = arc4random()%100;

if(shouldCallFinal <= 70)
{
[NSTimer scheduledTimerWithTimeInterval:10.7550f 
                                 target:self
                               selector:@selector(randomFinal)
                               userInfo:nil
                                repeats:NO]; 
}
于 2012-07-01T14:15:07.140 に答える