我正在开发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];
答案 0 :(得分:0)
不要对所有按钮使用相同的 X-cordinates 。请参阅以下代码
-(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;
}
}
答案 1 :(得分:0)
此处,代码问题在于您为按钮CGRectMake(350.0,750.0,160.0,40.0)
如果你想让它们水平对齐,你需要改变按钮的x位置,如果你想垂直对齐它们,可以改变y posyion。
在iPhone中,位置由第CGRectMake(x,y,width,height)
帧指定。因此,根据要求指定不同的x和y值,如果使用循环,也可以递增该值。