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 回答