0
else if (setIndexPath == 4)
{
    viewWithButtons.frame = CGRectMake(5, 40, 310, 390);

    int ch = 6;
    int cv = 6;

    for ( int i = 0 ; i < cv ; ++i )
    {
        for ( j = 0 ; j < ch ; ++j )
        {
            btnMatrix = [[[UIButton alloc] initWithFrame:CGRectMake(10+pw*j, 51+ph*i, width, height)] autorelease];
            btnMatrix.tag = i*ch+j;
            btnMatrix.userInteractionEnabled = TRUE;
            [btnMatrix addTarget:self action:@selector(changeImage:) forControlEvents:UIControlEventTouchDown];
            [btnMatrix setBackgroundImage:imgDefaultBG forState:UIControlStateNormal];

            [viewWithButtons addSubview:btnMatrix];

            [arrButton addObject:btnMatrix];
        }
    }
}
[self.view addSubview:viewWithButtons];

4 * 4、4 * 5、4 * 6、5 * 6、6*6などの選択したマトリックスに従って動的にボタンを生成しています。

ボタンは、上から選択したマトリックスに従って完全に設定されます(コードは6 * 6マトリックス用です)。

次に、これらのボタンのランダムな背景画像を設定する必要があります。

このようなダイナミックボタンの背景を設定することはできません。

個別のボタンごとにランダムな順序で背景を動的に設定する効果的な方法はありますか?

    for (intimg = 1; intimg <= 15; intimg++)
    {
        arr_FirstSet = [[NSMutableArray alloc] initWithObjects:[NSString stringWithFormat:@"%d_f_2.png",intimg], nil];
    }
    for (intimgSET2 = 1; intimgSET2 <= 15; intimgSET2++) {
        arr_SecondSet = [[NSMutableArray alloc] initWithObjects:[NSString stringWithFormat:@"%d_s_2.png",intimgSET2], nil];
    }

この形式の画像をNSMutableArrayに追加しています。

上記の使用済み配列からランダムな画像を選択する方法。両方の配列画像を一致させて、ボタンに結果を表示する必要があります。両方が一致する場合、1つのボタンを押すと1_f_2.pngが表示され、別のボタンを押すと1_s_2.png(背景として)が表示され、これらのボタンの両方がビューから削除されます。

私はこれを得るために多くのロジックを試しました。

ボタンのタッチダウンでやりたいことが正確にわかりません。

コードスニペット、リンク、またはコードも提案してください。

前もって感謝します。

4

1 に答える 1

1
- (UIImage*)randomImage {
    NSInteger imageCount = [[self imageArray] count]
    return [[self imageArray] objectAtIndex:arc4random() % imageCount]; 
}

一致するペアが必要な場合。2つの画像を含む辞書、または2つの画像を保持する単純なクラスを使用します。

于 2012-05-29T07:03:52.767 に答える