0

私はiOSアプリに取り組んでいます(私の最初の-私は非常に長い間.NET開発者でした)。

動的に追加されたボタンを設定しています - 作成しようとしているボタンが互いに重なっている以外は、すべてうまく機能します。

ボタンを動的に追加して位置を変更する方法について何か考えはありますか? (ASP.NET ではプレースホルダーとコントロールを追加しますが、iOS ではオプションではありません)

コード:

UIButton btn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
[btn addTarget: self action:@selector(loadQuestion:) forControlEvents:UIControlEventTouchUpInside;
[btn setTitle:@"My Button" forState:UIControlStateNormal];
btn.frame = CGRectMake(350.0,750.0,160.0,40.0);
[self.view addSubView:btn];
4

2 に答える 2

0

すべてのボタンに同じX 座標を使用しないでください。以下のコードを参照してください

-(void)addSixButtons{

  float xCord = 5.0;

   for(int itemIndex = 1; itemIndex < 7; itemIndex++){

     UIButton myButton = [UIButton buttonWithType:UIButtonTypeRoundedRect];
     [myButton addTarget: self action:@selector(loadQuestion:) forControlEvents:UIControlEventTouchUpInside;
     [myButton setTitle:@"My Button" forState:UIControlStateNormal];
     myButton.frame = CGRectMake(xCord,750.0,160.0,40.0);
     myButton.tag = itemIndex;
     [self.view addSubView:myButton];

     xCord += 165.0;
   }
}

-(void)loadQuestion:(id)sender{

   UIButton *btnClicked = (UIButton *)sender;

  switch(btnClicked.tag){

       case1:
        //clicked first button
        break;

      case2:
       //clicked second button
       break;

     default:
      break;
  }

}
于 2013-03-20T17:28:18.240 に答える
0

ここで、コードの問題は、ボタンに同じフレームを指定していることですCGRectMake(350.0,750.0,160.0,40.0)

ボタンを水平方向に揃える場合はボタンの x 位置を変更する必要があり、垂直方向に揃える場合は y 位置を変更できます。

iPhone では frame で位置を指定しますCGRectMake(x,y,width,height)。そのため、必要に応じて異なる x 値と y 値を指定し、ループを使用している場合はその値をインクリメントすることもできます。

于 2013-03-20T17:33:23.030 に答える