iOS 输入文字时文本框上移

1.在xib的头文件里面添加textField的委托协议,如:@interface ZLViewController : UIViewController<UITextFieldDelegate>;

2.在xib 的 .m文件里的函数viewDidLoad添加某个或某几个textField的delegate如:self.messageTextField.delegate=self;

3.然后添加相应的函数如下:

//键盘上移

//该方法为点击输入文本框要开始输入是调用的代理方法:就是把view上移到能看见文本框的地方

-(void)textFieldDidBeginEditing:(UITextField *)textField

{

    CGFloat keyboardHeight = 216.0f;

    if (self.view.frame.size.height - keyboardHeight <= textField.frame.origin.y + textField.frame.size.height) {

        CGFloat y = textField.frame.origin.y - (self.view.frame.size.height - keyboardHeight - textField.frame.size.height - 5);

        [UIViewbeginAnimations:@"srcollView"context:nil];

        [UIViewsetAnimationCurve:UIViewAnimationCurveEaseInOut];

        [UIViewsetAnimationDuration:0.275f];

        self.view.frame = CGRectMake(self.view.frame.origin.x, -y, self.view.frame.size.width, self.view.frame.size.height);

        [UIViewcommitAnimations];

    }

}

 

//该方法为点击虚拟键盘Return,要调用的代理方法:隐藏虚拟键盘

- (BOOL)textFieldShouldReturn:(UITextField *)textField{

    [textField resignFirstResponder];

    returnYES;

}

 

//该方法为完成输入后要调用的代理方法:虚拟键盘隐藏后,要恢复到之前的文本框地方

- (void)textFieldDidEndEditing:(UITextField *)textField{

    [UIViewbeginAnimations:@"srcollView"context:nil];

    [UIViewsetAnimationCurve:UIViewAnimationCurveEaseInOut];

    [UIViewsetAnimationDuration:0.275f];

    self.view.frame = CGRectMake(self.view.frame.origin.x, 0, self.view.frame.size.width, self.view.frame.size.height);

    [UIViewcommitAnimations];

}

转载于:https://www.cnblogs.com/liukunyang/p/3359382.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要实现在iOS文本框的上下滑动,可以通过以下方法实现。首先,您需要添加一个监听事件,当文本框获取焦点,禁止默认的上下滑动效果。您可以使用以下代码来实现这一点: ```html <input type="text" id="queryTitle" value="$queryTitle" placeholder="主题" onfocus="input()" onblur="noInput()"> <script> function input() { document.body.addEventListener('touchmove', function(e) { e.preventDefault(); // 阻止默认的处理方式(阻止上下滑动的效果) }, { passive: false }); }; </script> ``` 然后,在文本框失去焦点,您需要清除掉禁止滚动的监听事件,以实现文本框的上下滑动。可以使用以下代码来实现这一点: ```html <input type="text" id="queryTitle" value="$queryTitle" placeholder="主题" onfocus="input()" onblur="noInput()"> <script> function noInput() { document.body.removeEventListener('touchmove', function(e) { e.preventDefault(); }, { passive: false }); }; </script> ``` 需要注意的是,passive参数不能省略,它用来兼容iOS和Android。如果不写passive: false,iOS手机端将无法实现文本框的上下滑动。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [ios手机端数字显示黑色和input输入禁止滑动的解决方案](https://blog.csdn.net/m0_65638748/article/details/126431292)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值