UIScrollView和多个UITextField

时间:2011-11-10 20:05:14

标签: iphone uiscrollview uitextfield

我对uitextfield& amp; uiscrollview,问题是当我点击uitextfield时键盘隐藏字段,为解决这个问题我使用:

- (BOOL) textFieldShouldBeginEditing:(UITextField *)textField {

    CGRect viewFrame = self.scroll.frame;
    viewFrame.size.height -= 186;
    [self.scroll setFrame:viewFrame];

    return YES;
}

- (BOOL) textFieldShouldReturn:(UITextField *)textField{

    [self.scroll setFrame:CGRectMake(0, 0, 320, 480)];

    [self inserisciField];

    [textField resignFirstResponder];

    return YES;
}

并且所有工作,问题是多个字段,选择一个字段如果我更改字段而没有单击返回滚动视图的大小/位置错误但是如果我单击return,那么我选择一个字段,按回车键,改变领域,ecc ...所有的工作。

我认为存在这个问题,因为如果我更改字段,滚动维度已更改两次(第一次查看frame.size.height - = 186,另一次使用 - = 186)然后我尝试将此设置为方法

- (BOOL) textFieldShouldEndEditing:(UITextField *)textField {

    [self.scroll setFrame:CGRectMake(0, 0, 320, 480)];

    return YES;
}

我设置了帧的默认大小,但没有。

2 个答案:

答案 0 :(得分:3)

使用此 -

- (BOOL) textFieldShouldBeginEditing:(UITextField *)textField {

    CGPoint point = CGPointMake(scroll.frame.origin.x, scroll.frame.origin.y + 186);
    [self.scroll setContentOffset:point];

    return YES;
}

- (BOOL) textFieldShouldEndEditing:(UITextField *)textField {

    CGPoint point = CGPointMake(0, 0);
    [self.scroll setContentOffset:point];
}

答案 1 :(得分:0)

当您触摸或编辑文本字段时,您可以使用scrollview的contentoffset属性,因为它是您问题的最佳解决方案,触摸和编辑是相同的过程 - 只有当您触摸该字段时,它才会变得可编辑。