1

だから私のカルーセルで私はこれを実装しました:

- (UIView *)carousel:(iCarousel *)_carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view
{   
   // int randomforIndex = arc4random()%[images count]+1;
        UIImageView *imageView  = [[UIImageView alloc] initWithImage:[UIImage imageNamed:[images objectAtIndex:index]]];
        return imageView;


}

で画像を割り当てますNSString。画像のあるカルーセルが特定の位置[images objectAtIndex:index]で停止するたびに、対応するアクションが実行されます。しかし、そのrandomforIndex部分を自分のために使用するindexと、すべてが混乱します。したがって、私の問題は、値をランダム化せずに画像をランダム化する方法です。

これは、NSString を使用して画像を追加する方法です。

for (int x=1; x<76;x++) {
        // add as NSString
        [images addObject:[NSString stringWithFormat:@"%d", x]];
            }
4

2 に答える 2

0

これを試すことができます。最初にimages、コードを使用して配列を埋めます。次に、この順序付けられた配列をシャッフルします。ここには素晴らしいNSArrayシャッフルカテゴリがあります:NSArrayのシャッフル

の空の#import行を削除する必要があることに注意してくださいNSArray+Helpers.h

images = [[NSMutableArray alloc] init];
for (int x=1; x<76;x++)
{
    [images addObject:[NSString stringWithFormat:@"%d.png", x]];
}
images = (NSMutableArray *)[images shuffled];

コードのこの部分はテストされ、機能します。

この時点から、ファイル名はすでにshuffeldになっているため、ランダム化せずに単純なviewForItemAtIndexを使用しても問題ないはずです。

- (UIView *)carousel:(iCarousel *)carousel viewForItemAtIndex:(NSUInteger)index reusingView:(UIView *)view
{   
    if (view == nil)
    {
        view = [[UIImageView alloc] init];
    }

    UIImage* nimage = [UIImage imageNamed:[images objectAtIndex:index]];
    view.image = nimage;
    view.frame = CGRectMake(0.0,0.0,nimage.size.width,nimage.size.height);  

    return view;
}
于 2012-05-24T08:40:32.267 に答える
0

ランダムリストを個別に保存する必要があります。別の配列を作成し、ランダムなシーケンスをその配列に入れます。これをデータ ソースとして使用し、数値と画像の間のリンクをそのまま維持できます。

于 2012-05-24T07:57:14.530 に答える