1

我在单个视图上有一个添加按钮。此按钮具有相同的操作,例如显示相同的标签。如果我单击一个按钮一次,将显示一行。如果我再次单击,相同的标签将显示在前一个标签的下方。我怎样才能做到这一点。请用一些示例代码给出答案。

-(void) addBtnAct
{

[self.view addSubview:sizeDropDownBtn];
deleteBtn.hidden=YES;
[sizeDropDownBtn addSubview:sizeDropDownBtnLbl];
[self.view addSubview:weightDropDownBtn];
[weightDropDownBtn addSubview:weightDropDownBtnLbl];
[self.view addSubview:quantityTxtFld];
[quantityTxtFld addSubview:quantityLbl];
sizeDropDownBtn.frame = CGRectMake(10, 190, 86, 40);
weightDropDownBtn.frame = CGRectMake(110, 190, 86, 40);
quantityTxtFld.frame = CGRectMake(220, 190, 86, 40);
quantityLbl.frame = CGRectMake(10, 12, 100, 15);
sizeDropDownBtnLbl.frame = CGRectMake(20, 12, 100, 15);
weightDropDownBtnLbl.frame = CGRectMake(10,12, 100, 15);
}
4

1 回答 1

0

有几种方法可以实现这一点,您应该解释为什么需要它。

简单的方法是在某处计算您已经添加了多少行,然后在添加新行时计算适当的 y 值。此外,您应该先分配框架,然后才将子视图添加到视图。

//add this to @interface declaration
@property (nonatomic, assign) int rowCount;


- (void)viewDidLoad
{
    [super viewDidLoad];
    self.rowCount = 0;
}

-(void) addBtnAct
{
    UIButton *weightDropDownBtn = [UIButton buttonWithType:UIButtonTypeRoundedRect];
    int y = self.rowCount * 60;
    self.rowCount++;
    weightDropDownBtn.frame = CGRectMake(110, y, 86, 40);
    [self.view addSubview:weightDropDownBtn];

}
于 2013-08-13T08:44:18.587 回答