IOS-监听系统键盘及键盘出现时候输入框向上移动
来源:互联网 发布:淘宝供销平台出租 编辑:程序博客网 时间:2024/04/28 05:10
//键盘出现 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyBoardShow) name:UIKeyboardWillShowNotification object:nil]; //键盘消失 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyBoardHide) name:UIKeyboardWillHideNotification object:nil];- (IBAction)input:(UITextField *)sender { //创建一个线程用来延迟视图上弹 NSThread *thread = [[NSThread alloc]initWithTarget:self selector:@selector(change:) object:sender]; [thread start]; //释放创建的对象}//方法一:- (IBAction)input:(UITextField *)sender { //创建一个线程用来延迟视图上弹 NSThread *thread = [[NSThread alloc]initWithTarget:self selector:@selector(change:) object:sender]; [thread start]; //释放创建的对象}- (IBAction)quxiao:(UIButton *)sender{ [_textField resignFirstResponder]; NSThread *thread = [[NSThread alloc]initWithTarget:self selector:@selector(change1:) object:sender]; [thread start]; //释放创建的对象}- (void)change:(UITextField *)sender{ //线程睡眠0.2秒以实现视图延迟上弹 [NSThread sleepForTimeInterval:0.2]; //创建一个仿射变换,平移(0, -100)视图上移100像素 CGAffineTransform pTransform = CGAffineTransformMakeTranslation(0, -100); //使视图使用这个变换 self.view.transform = pTransform;}- (void)change1:(UITextField *)sender{ //线程睡眠0.1秒以实现视图延迟下滑 [NSThread sleepForTimeInterval:0.1]; //当输入取消时候,返回原处 CGAffineTransform pTransform = CGAffineTransformMakeTranslation(0, 0); //使视图使用这个变换 self.view.transform = pTransform;}//方法二:- (void)textFieldDidBeginEditing:(UITextField *)textField{ [self animateTextField:_textField up:YES];}- (void)textFieldDidEndEditing:(UITextField *)textField{ [self animateTextField:_textField up:NO];}- (void)animateTextField:(UITextField *)textField up:(BOOL)up{ const int movementDistance = 100; // tweak as needed const float movementDuration = 0.3f; // tweak as needed int movement = (up ? -movementDistance : movementDistance); [UIView beginAnimations: @"anim" context: nil]; [UIView setAnimationBeginsFromCurrentState: YES]; [UIView setAnimationDuration: movementDuration]; self.view.frame = CGRectOffset(self.view.frame, 0, movement); [UIView commitAnimations];}
0 0