0

私はを持っていますNSMutableArray、そして私はそれにいくつかの文字列値を保存しています。のサイズは2〜5のNSMutableArray範囲で変化する可能性があります(つまり、2〜5の文字列値が格納されている可能性があります)。

カウントに応じて、NSMutableArrayUIBUttonsを初期化してから、initに格納されている文字列の値をボタンのタイトルに設定する必要があります。

int numberOfButtonsToBeInitialize= [mutableArr count];// we are finding the number of buttons to be initialize and we assign it to a variable.

今、私はボタンを作成する必要があります(によって返される数は何でも numberOfButtonsToBeInitialize

これどうやってするの ?

4

3 に答える 3

1
  for(int i=0;i<numberOfButtonsToBeInitialize;i++){
  //init the button
  UIButton *bout = [UIButton buttonWithType:UIButtonTypeRoundedRect];
        //set the title 
        [bout setTitle:[mutableArr objectAtIndex:i] forState:UIControlStateNormal];
        [bout addTarget:self action:@selector(event:) forControlEvents: UIControlEventTouchUpInside];
        [self.view addSubview:bout ];
        //then you can set the position of your button
        [bout setFrame:CGRectMake(70,3, 40,40)];}
于 2012-04-06T10:18:25.497 に答える
0

これを試して:

NSMutableArray *myButtonsArray = [[NSMutableArray alloc] initWithCapacity:0];
UIButton *tmpButton;
for (NSString *bTitle in mutableArr)
{
    tmpButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    [tmpButton setTitle:bTitle forState:UIControlStateNormal];
    // Any additional  setup goes here
    [myButtonsArray addObject:tmpButton];
}

これで、すべてのボタンを含む配列ができました。この配列を反復処理して、任意のボタンをメイン ビューにサブビューとして追加するだけです。

于 2012-04-06T10:20:39.383 に答える
0

forループが必要です。例えば:

float buttonWidth=50;
float margin=5;
for (int index=0; index<numberOfButtonsToBeInitialize;index++)
{
    UIButton* button=[UIButton buttonWithType:UIButtonTypeRoundedRect];
    NSString* buttonTitle=[mutablearr objectAtIndex:index];
    [button setTitle:buttonTitle forState:UIControlStateNormal];
    [button setFrame:CGRectMake(0+(buttonWidth+margin)*index, 0, buttonWidth, 30)];
    [button setTag:100+index];
    [button addTarget:self action:@selector(buttonPressed:) forControlEvents:UIControlEventTouchUpInside];
    [self.view addSubview:button];
}

この場合、ボタンを一列に(水平に)レイアウトします。自分の好みに合わせて調整する

于 2012-04-06T10:21:48.860 に答える