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
原创粉丝点击