让我们假设我们有一个应用程序的登录屏幕。登录屏幕实现了一个UITableViewController
,其中包含一个UITableView
。 UITableView
有1个部分,该部分包含两个单元格(请参阅下面的情节提要)。
当前行为
当用户开始编辑电子邮件字段时-使用占位符输入您的电子邮件-键盘与密码字段重叠-使用占位符输入您的密码。
所需行为:
当用户开始编辑电子邮件字段时,键盘不应与这两个字段重叠,并且键盘应位于这两个字段下方。
尝试的解决方案
我试图在我的LoginFormController : UITableViewController
中使用以下命令来强制UITableView
滚动到适当的位置,但无济于事:
-(BOOL) textFieldSHouldBeginEditing:(RCTextField *)textField
{
[[self.view viewWithTag:textField.tag+1] becomeFirstResponder];
// get the scroll index path of the last row in the first section
NSIndexPath *scrollIndexPath = [NSIndexPath indexPathForRow:1 inSection:0];
// scroll the view there
[[self tableView] scrollToRowAtIndexPath:scrollIndexPath
atScrollPosition:UITableViewScrollPositionBottom animated:YES];
return YES;
}
我的
LoginFormController : UITableViewController
界面://
// LoginFormController.h
// Zealoushacker
//
// Created by Alex Notov on 7/31/13.
// Copyright (c) 2013 Zealoushacker, Inc. All rights reserved.
//
#import <UIKit/UIKit.h>
@interface LoginFormController : UITableViewController <UITextFieldDelegate>
@end
LoginFormController
当然引用了tableView
。 最佳答案
您可以尝试将TPKeyboardAvoiding添加到您的项目中
TPKeyboardAvoiding-一种通用的嵌入式解决方案,用于在iOS中将文本字段移出键盘。
要与UITableViewController classes
一起使用,请将TPKeyboardAvoidingTableView.m
和TPKeyboardAvoidingTableView.h
放入项目中,并使UITableView成为xib中的TPKeyboardAvoidingTableView。
检查Sample