当我们编辑UITextField时,向上移动UIView和一些UITextFields

时间:2016-02-17 16:45:26

标签: ios objective-c uiview uitextfield

我有一个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);
}

1 个答案:

答案 0 :(得分:0)

将您的UIView更改为UIScrollView。然后在textFieldDidBeginEditing方法中为您的滚动浏览contentSize添加键盘高度(通常为260),并相应地更改contentOffset。不要忘记在contentSize

中将contentOffsettextFieldDidEndEditing重置为正常值
-(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);
}
相关问题