删除文本字段时如何更改文本字段的位置?

时间:2014-04-09 09:00:27

标签: ios uiscrollview uitextfield

我是iPhone开发的新手。现在我想用水平滚动显示40个文本字段..

我已使用以下代码创建了此UITextField

// Create the scrollView:
UIScrollView *scrViewRankTracker = [[UIScrollView alloc] initWithFrame: CGRectMake(0, 0, 320, 200)];
[scrViewRankTracker setContentSize: CGSizeMake(1200, 200)];
[self.view addSubview:scrViewRankTracker];
scrViewRankTracker.delegate = self;
CGRect frame = CGRectMake(10, 10, 80, 150);
[scrViewRankTracker scrollRectToVisible: frame animated:YES];

float x = 10;
float y = 10;
float width = 100;
float height = 30;

// Create the textfield using for loop:

for(int textFieldIndex =0;textFieldIndex<40;textFieldIndex++)
{
    tfRankTracker = [[UITextField alloc]initWithFrame:CGRectMake(x, y, width, height)];
    tfRankTracker.returnKeyType = UIReturnKeyDone;
    [tfRankTracker setTag:textFieldIndex+1];
    [tfRankTracker setBorderStyle:UITextBorderStyleRoundedRect];
    [tfRankTracker setDelegate:self];

    [scrViewRankTracker addSubview:tfRankTracker];

    x = x + width + 20;

    if((textFieldIndex+1)%10==0)
    {
        x = 10;
        y = y + height + 20;
    }
}

此代码的输出将显示如下 实施例

1     2   3   4   5    6   7   8   9   10

11  12  13  14  15  16  17 18  19  20

21  22  23  24  25  26  27  28  29  30

31  32  33  34  35  36  37  38  39  40

现在,假设如果我删除no.4的文本字段而不是no.14将代替no.4 ... no.24将取代no.14而no.34将取代没有24的地方......

enter image description here

有人可以帮帮我!!!!! 感谢

2 个答案:

答案 0 :(得分:0)

为所有UITextField设置与您所拥有的序列相似的标签..然后..

-(void)onDelete:(UITextField *)textField{
    int curTag=textField.tag;

    int tagToReplace=curTag+10;

    UITextField *textFieldToReplace=[self.view viewWithTag:tagToReplace];

    [UIView animateWithDuration:.3 animations:^{
       textFieldToReplace.frame=textField.frame;
    }];

}

上面的代码应该做你需要的,可能需要一些调整。

希望这有帮助。

答案 1 :(得分:0)

您应该使用collectionViewController来解决问题。 tutorial 会一步一步指导您。