我对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;
}
我设置了帧的默认大小,但没有。
答案 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属性,因为它是您问题的最佳解决方案,触摸和编辑是相同的过程 - 只有当您触摸该字段时,它才会变得可编辑。