我有一个UIScrollView,里面有一个UITextField,所以我所做的就是在第三个文本字段,即密码,向下滚动UIScrollView的偏移量:
#pragma mark UITextFieldDelegate
- (void)textFieldDidBeginEditing:(UITextField *)textField
{
if ((textField == self.emailTextField_ || textField == self.passwordTextField_)){
if (self.scrollView_.contentOffset.y != self.emailTextField_.frameY - self.emailTextField_.frameHeight/2){
shouldAdjustOffset = YES;
} else {
shouldAdjustOffset = NO;
}
if (shouldAdjustOffset){
[self.scrollView_ setContentOffset:CGPointMake(0, self.emailTextField_.frameY - self.emailTextField_.frameHeight/2) animated:YES];
}
}
}
-(BOOL) textFieldShouldReturn:(UITextField *)textField
{
if (textField == self.firstNameTexField_){
[self.firstNameTexField_ resignFirstResponder];
[self.lastNameTextField_ becomeFirstResponder];
} else if (textField == self.lastNameTextField_){
[self.lastNameTextField_ resignFirstResponder];
[self.emailTextField_ becomeFirstResponder];
} else if (textField == self.emailTextField_){
[self.emailTextField_ resignFirstResponder];
[self.passwordTextField_ becomeFirstResponder];
} else if (textField == self.passwordTextField_){
[self signupButtonPressed:nil];
[self.passwordTextField_ resignFirstResponder];
}
return YES;
}现在的问题是,当我在下一个文本字段时,它会将内容偏移量重置回0,当我这样做时:
[self.emailTextField_ resignFirstResponder];
[self.passwordTextField_ becomeFirstResponder];。我如何才能防止这种情况发生?
发布于 2012-11-06 20:46:01
只需在显示键盘(becomeFirstResponder)前打开scrollview scroll,并在它之后启用回滚,
scrollView.scrollEnabled = NO;
[someControl becomeFirstResponder];
scrollView.scrollEnabled = YES;
[scrollview doTheScrollingHere];发布于 2015-02-19 18:35:39
@Deepan你为我节省了很多时间:)我只建议重写UITextField方法becomeFirstResponder,首先检查它是否在UIScrollView中,如果是禁用滚动一段时间
- (BOOL)becomeFirstResponder
{
if ([self.superview isKindOfClass:[UIScrollView class]])
{
[(UIScrollView*)self.superview setScrollEnabled:NO];
}
BOOL accept = [super becomeFirstResponder];
if ([self.superview isKindOfClass:[UIScrollView class]])
{
[(UIScrollView*)self.superview setScrollEnabled:YES];
}
return accept
}https://stackoverflow.com/questions/12809119
复制相似问题