3

私はiPadアプリケーションに取り組んでいます。メイン画面には、IB で作成された 6 つのボタンがあります。コードから動的に配置したいのですが、できません。すでにオブジェクトのフレーム/中心を設定しようとしましたが、動きませんでした。

ボタンアウトレットを保持する配列があり、それらを for ループに配置します。何か提案はありますか?

ありがとう!

編集:

ここにいくつかのコードがあります(全体ではありませんが、残りは今では無関係です)、ボタンをループする方法。ボタンアウトレットはすでに適切に設定されています。ボタンのタイトルは適切に変更されます。また、ボタンを非表示/表示することはできますが、位置は変更できません。

次のようなダミーコードを試してみると、 tempBtn.frame = CGRectMake(100.0, 200.0, 60.0, 40.0); 何も変わりません(ただし、6つのボタンはすべて同じ位置にあるはずです)

// I have this array, which contains the button outlets

tAddBtnArray = [NSArray ArrayWithObjects:tAddBtn1,tAddBtn2,tAddBtn3,tAddBtn4,tAddBtn5,tAddBtn6, nil];

//I loop through the array, set button title, and trying to change the y position
 for(int i=0;i<6;i++){
        UIButton *tempBtn = [tAddBtnArray objectAtIndex:i];
        [tempField setText:@"Set some title"];
  } 
4

2 に答える 2

4

次の方法で、uibbutons をプログラムで追加できます。

    UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[button addTarget:self 
           action:@selector(yourMethod:)
 forControlEvents:UIControlEventTouchDown];
[button setTitle:@"Jesus Gil y Gil" forState:UIControlStateNormal];
button.frame = CGRectMake(100.0, 200.0, 60.0, 40.0);
[view addSubview:button];
于 2012-10-18T15:08:18.577 に答える
2

私はそれが何であるかを知っているに違いない。xib ファイルで自動レイアウトを有効にしていますか? その場合、フレームが設定され、次に制約が評価され、ボタンが割り当てられた場所に戻されます。

次の 2 つのオプションがあります。

  1. フレームを自分で管理できるように、自動レイアウトをオフにします。
  2. 自動レイアウトをオンのままにしますが、制約とフレームを更新します。

自動レイアウトをオフにすることをお勧めしますが、私はそれが特に好きではないので、単なる好みです。

于 2012-10-18T17:53:57.860 に答える