IOS中多个UITextField的键盘处理-视图位移
当有多个UITextField的时候,一个比较好的处理方式就是实现视图移位,实现的方法也很简单。
首先是加入UITextField的代理UITextFieldDelegate。
其次,在代理的-(void) textFieldDidBeginEditing:(UITextField *)textField方法中实现
CGFloat keyboardHeight = 216.0; if ((textField.frame.origin.y + keyboardHeight + textField.frame.size.height) >= ([[UIScreen mainScreen] bounds].size.height - 100.0)) { //此时,编辑框被键盘盖住,则对视图做对应的位移 CGRect frame = CGRectMake(0.0, 0.0, 320, [[UIScreen mainScreen] bounds].size.height + 120.0); frame.origin.y -= textField.frame.origin.y + keyboardHeight + textField.frame.size.height - [[UIScreen mainScreen] bounds].size.height + 120.0;//偏移量=编辑框原点Y值+键盘高度+编辑框高度-屏幕高度 _scrollView.frame=frame; }
这里面的具体位置可以自己调整,算法也是不唯一的
当到达最后一个UITextField的时候,要隐藏键盘,这里如何做呢,如下所示:
在代理
- (BOOL)textFieldShouldReturn:(UITextField *)textField
方法中
最后一个失去焦点的时候
[_bloodTextField resignFirstResponder]; CGRect frame = _scrollView.frame; frame.size.height = [[UIScreen mainScreen] bounds].size.height; frame.origin.y = 0.0; _scrollView.frame=frame; return YES;
判断的话我使用这样子实现的
if ([_bloodTextField isFirstResponder])
是不是很简单
版权声明
由 davidzhang创作并维护的 Gowhich博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。
本文首发于 博客( https://www.gowhich.com ),版权所有,侵权必究。
本文永久链接: https://www.gowhich.com/blog/521
版权声明
由 davidzhang创作并维护的 Gowhich博客采用创作共用保留署名-非商业-禁止演绎4.0国际许可证。
本文首发于 Gowhich博客( https://www.gowhich.com ),版权所有,侵权必究。
本文永久链接: https://www.gowhich.com/blog/521