当我们编辑 UITextField 时,将带有一些 UITextFields 的 UIView 向上移动

Posted

技术标签:

【中文标题】当我们编辑 UITextField 时,将带有一些 UITextFields 的 UIView 向上移动【英文标题】:Move the UIView with some UITextFields up when we edit UITextField 【发布时间】:2016-02-17 16:45:26 【问题描述】:

我有一个 UIView。在里面我有两个文本字段 - usernamepassword,还有一个 submit UIButton。我将 UIView 保持在屏幕中心。所以现在当我编辑我的username and password field 时,我的密码字段被键盘隐藏了。

那么当我的键盘打开时,是否可以显示我的“带有这两个文本字段的总 UIView”?

请帮助一些代码。谢谢!

更新代码:

@implementation ViewController
@synthesize scrollView;


- (void)viewDidLoad 
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.


- (void)didReceiveMemoryWarning 
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.

-(void)textFieldDidBeginEditing:(UITextField *)textField 
    self.scrollView.contentSize = CGSizeMake(self.scrollView.contentSize.width, (self.scrollView.contentSize.height + 260));
    self.scrollView.contentOffset = CGPointMake(0,120);


-(void)textFieldDidEndEditing:(UITextField *)textField 
    self.scrollView.contentOffset = CGPointZero;
    self.scrollView.contentSize = CGSizeMake([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height);

【问题讨论】:

这个已经回答了***.com/questions/11282449/…> How to make a UITextField move up when keyboard is present的可能重复 【参考方案1】:

将您的 UIView 更改为 UIScrollView。然后在textFieldDidBeginEditing 方法中将键盘高度(通常为260)添加到滚动视图的contentSize 并相应地更改contentOffset。不要忘记将contentSizecontentOffset 重置为textFieldDidEndEditing 中的正常值

-(void)textFieldDidBeginEditing:(UITextField *)textField 
    self.scrollView.contentSize = CGSizeMake(self.scrollView.contentSize.width, (self.scrollView.contentSize.height + 260));
    self.scrollView.contentOffset = CGPointMake(0, <desired height>);


-(void)textFieldDidEndEditing:(UITextField *)textField 
     self.scrollView.contentOffset = CGPointZero;
     self.scrollView.contentSize = CGSizeMake([UIScreen mainScreen].bounds.size.width, [UIScreen mainScreen].bounds.size.height);

【讨论】:

我会将 uiview 更改为 uiscroll 视图。那你能解释一下键盘代码和内容偏移编码吗 您的代码出现desired loginRegisterView SCREEN_WIDTH , SCREEN_HEIGHT 的名称错误 我刚刚将我的 uiview 更改为 uiscroll 视图 想要的高度我的意思是你想要的高度:D 高度是滚动视图还是键盘?

以上是关于当我们编辑 UITextField 时,将带有一些 UITextFields 的 UIView 向上移动的主要内容,如果未能解决你的问题,请参考以下文章

编辑 UITextField 时正在重置 UIScrollView

当我们点击它时 UItextfield 不可编辑

编辑第一个 UITextField 时,如何将 UITableView 滚动到第二个 UITextField?

当表格进入“编辑”模式时,如何使表格单元格 UITextField 可编辑?

UITextField在开始编辑时具有“清除”按钮大小

iOS如何选择行,当一个人选择里面的UITextField?