2012-07-12 81 views
0

我想爲iOS應用程序提供三組10個按鈕。我想要顯示/隱藏每個集合(一次顯示一個集合)。我打算使用標籤來做到這一點。從IB中的多個按鈕創建對象陣列,XCode

因爲它是我有一個屬性爲每個按鈕(例如:btn01,btn02等),所以我有30個屬性。我將它添加到數組中,然後使用下面的代碼來隱藏具有一個標記或另一個標記的按鈕。

我的問題是,是否有更有效的方法來創建對象數組,而不是設置30個屬性(每個按鈕一個)。這很好,只是想知道是否有更清晰的方式,用循環來從IB收集每個按鈕。想不到。

if (tagState == 1) { 
     tagState = 2; 
    }else { 
     tagState = 1; 
    } 

    for (btn in myArray) { 
     NSLog(@"%@",btn); 
     if (tagState == 1) { 
      if (btn.tag == 1) { 
       [btn setHidden:YES]; 
      } 
      if (btn.tag == 2) { 
       [btn setHidden:NO]; 
      } 

     } else if (tagState == 2) { 
      if (btn.tag == 1) { 
       [btn setHidden:NO]; 
      } 
      if (btn.tag == 2) { 
       [btn setHidden:YES]; 
      } 

     }  
    } 
} 
+1

可以在每次組按鈕添加到不同的UIView,然後簡單地隱藏時/節目每個視圖根據需要? – 2012-07-12 05:02:58

回答

1

我認爲你可以使用視圖層次非常有效地在這裏:把每一組按鈕進入自己的UIView,只有三個UIView■連接到插座,隱藏/顯示他們。請注意,這僅適用於因其他原因而不需要訪問各個按鈕的情況。

+0

我認爲這是我要做的。謝謝 – Mrwolfy 2012-07-13 05:55:45

1

您可以使用IBOutletCollection,這是一個NSArray的網點。

例如,隱藏一個集合中的所有網點,您可以使用

[outlets setValue:@YES forKey:@"hidden"] 

[outlets setValue:[NSNumber numberWithBool:YES] forKey:@"hidden"] 

使用LLVM < 4.0

+0

非常感謝。 – Mrwolfy 2012-07-13 05:55:23