动态添加uitextfields

时间:2014-09-30 11:32:34

标签: ios uitextfield

我有一个UIActionSheet和4个按钮。我已经有一个文本字段了。如果我按动作表上的2按钮,我必须再添加1个文本字段和第3个按钮,我必须添加2 UITextField s,依此类推5个按钮。并且场景是如果我按下第5个按钮应该添加5个文本字段,如果我按第1个按钮,则剩下4个文本字段应该基于我必须设置scrollview的contentSize。我写了这个:

-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex


    if(buttonIndex>1)
    {
        float yAxis = _adult1TF.frame.origin.y+_adult1TF.frame.size.height+10;
        float xAxis1 = _adult1TF.frame.origin.x;
        float xAxis2 = _child1TF.frame.origin.x;
        float width = _child1TF.frame.size.width;
        for(int i=1;i<(buttonIndex+1);i++)
        {
            UILabel * roomLabel2 = [[UILabel alloc]initWithFrame:CGRectMake(xAxis1, yAxis, width, 20)];
            roomLabel2.text = [NSString stringWithFormat:@"Room%d:",i+1];
            [_scroll addSubview:roomLabel2];
            UILabel * adultLabel = [[UILabel alloc]initWithFrame:CGRectMake(xAxis1, roomLabel2.frame.size.height+roomLabel2.frame.origin.y+10, width, 20)];
            adultLabel.text = @"Adults";
            [_scroll addSubview:adultLabel];
            UILabel * childLabel = [[UILabel alloc]initWithFrame:CGRectMake(xAxis2, adultLabel.frame.origin.y, width, 20)];
            childLabel.text = @"Children";
            [_scroll addSubview:childLabel];

            UITextField * adultTF = [[UITextField alloc]initWithFrame:CGRectMake(xAxis1, adultLabel.frame.size.height+adultLabel.frame.origin.y+10, width, 30)];
            adultTF.text = @"1";
            [_scroll addSubview:adultTF];

            UITextField * childTF = [[UITextField alloc]initWithFrame:CGRectMake(xAxis2, adultTF.frame.origin.y, width, 30)];
            childTF.text = @"0";
            [_scroll addSubview:childTF];
            adultTF.borderStyle = childTF.borderStyle = UITextBorderStyleRoundedRect;
            yAxis = adultTF.frame.size.height+adultTF.frame.origin.y+10;
        }
        _searchButton.frame = CGRectMake(_searchButton.frame.origin.x, yAxis+10, _searchButton.frame.size.width, _searchButton.frame.size.height);
        _scroll.contentSize = CGSizeMake(_scroll.frame.size.width, _searchButton.frame.size.height+_searchButton.frame.origin.y+15);
    }

这个问题是我可以添加文本字段但是如果我按下第一个按钮,则剩余的文本字段不会出现。

请告诉我如何解决这个问题。

1 个答案:

答案 0 :(得分:0)

您已经提到过操作表有多少个按钮。因此,您可以创建所有文本字段并隐藏这些文本字段。当用户点击操作表按钮时,您只需根据按钮索引隐藏/取消隐藏文本字段。

如果你有更多的按钮(想要创建更多的文本字段),你可以使用UITableView类来创建具有重用功能的多个对象。