2012-05-29 24 views
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_f_2.png &按下它將顯示1_s_2.png(作爲背景),然後這兩個按鈕將從視圖中移除。

我已經嘗試了很多邏輯來獲得這個。

我沒有得到正是我有興趣做按鈕的按鈕。

請建議任何代碼片段或鏈接或代碼也。

在此先感謝。

回答

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

如果你想匹配對。使用帶有兩個圖像的字典,或使用兩個圖像的簡單類。

+0

它正在崩潰... arr_FirstSet = [[NSMutableArray裏的alloc] initWithObjects:[的NSString stringWithFormat:@ 「%d_f_2.png」,intimg],零]。 [self randomImage:intimg]; - (UIImage *)randomImage:(NSInteger)intgereValue { NSInteger imageCount = intgereValue; return [arr_FirstSet objectAtIndex:arc4random()%imageCount]; } –

+0

您的arr_FirstSet是一個字符串數組,而不是UIImage對象。 – Konrad77

+0

- (NSString *)randomImageName { NSInteger imageCount = [arr_FirstSet count]; return [arr_FirstSet objectAtIndex:arc4random()%imageCount]; } UIImage * image = [UIImage imageNamed:[self randomImageName]; [myButton setImage:image forState ....]; – Konrad77