ios 含有textfield的viewcontroller随键盘弹起而改变位置

首先实现 设置代理,self.textfield.delegate = self;

具体实现代码:
-(void)textFieldDidBeginEditing:(UITextField *)textField{
    NSTimeInterval animationDuration = 0.30f;
    [UIView beginAnimations:@"ResizeForKeyboard" context:nil];
    [UIView setAnimationDuration:animationDuration];
    if ([UIScreen mainScreen].bounds.size.width>320) {
        //将视图的Y坐标向上移动,以使下面腾出地方用于软键盘的显示
        self.view.frame = CGRectMake(0.0f, -200.0f, self.view.frame.size.width, self.view.frame.size.height);//64-216
        [UIView commitAnimations];
    }
    else{
        self.view.frame = CGRectMake(0.0f, -170.0f, self.view.frame.size.width, self.view.frame.size.height);
        [UIView commitAnimations];
    }
}

-(void)textFieldDidEndEditing:(UITextField *)textField{
    //滑动效果
    NSTimeInterval animationDuration = 0.30f;
    [UIView beginAnimations:@"ResizeForKeyboard" context:nil];
    [UIView setAnimationDuration:animationDuration];

    //恢复屏幕
    self.view.frame = CGRectMake(0.0f, 0.0f, self.view.frame.size.width, self.view.frame.size.height);//64-216

    [UIView commitAnimations];
}

  

时间: 2024-10-12 13:16:13

ios 含有textfield的viewcontroller随键盘弹起而改变位置的相关文章

IOS问题汇总:2014-12-2 xcode6中iphone5模拟器中运行textfield不弹出键盘+点击return收键盘

1.xcode6中iphone5模拟器中运行textfield不弹出键盘 Hardware->Keyboard->Toggle Software Keyboard手动激活键盘 2.点击return收键盘(1)按住Ctrl,选中TextField,拖拽至ViewController使二者连接.(2)在.h中@interface那行添加.(3)在.m中添加代码: -(BOOL) textFieldShouldReturn:(UITextField *)textField{if (textField

iOS开发TextField根据键盘自适应位置

- (void)setNotification { [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrame:) name:UIKeyboardWillChangeFrameNotification object:nil]; } - (void)closeNotification { [[NSNotificationCenter defaultCenter]

ios 键盘弹起

#pragma mark 键盘弹起操作 - (void)keyboardWillShow:(NSNotification *)notification{    NSDictionary *info = notification.userInfo;    kbSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;    [UIView beginAnimations:@"kbmove" co

关于UIAlertView键盘弹起的问题

这里记录一下我在开发中遇到的一个奇葩的问题,经过百度后我发现这个问题确实存在,也有不少人遇到过,今天就把它写出来.其实我们单纯的使用UIAlertView是没什么问题的,但是当UI中有输入框时,当输入完成后,我们点击按钮弹出UIAlertView的时候,在点击UIAlertView上面的按钮跳转到下一个页面的时候,那么问题就来了,在后一个页面会弹出键盘.这个问题刚开始出现的时候,莫名奇妙,也找了好久,因为在模拟器上是不容易察觉的,在真机上就非常明显了. 下面我们模拟一下这个现象,在此来给大家加深

IOS开发-点击View取消键盘输入

要想在一个TextField等输入框中取消输入,有几个办法,第一个是在键盘添加按钮,第二个就是通过判断然后取消键盘的输入了. 下面讲第二个 写一个方法并实现 // .h文件 - (IBAction)cancelInput:(id)sender; // .m文件 - (void)cancelInput:(id)sender { [TextField1 resignFirstResponder]; [TextField2 resignFirstResponder]; [TextView resign

全局异步和主线程异步区别、改变PlaceHolder颜色、解决键盘弹起挡住文本框问题

1.全局异步执行耗时任务 dispatch_async(dispatch_get_global_queue(0, 0), ^{ }); 2.主线程异步刷新UI dispatch_async(dispatch_get_main_queue(), ^{ }); 3.改变PlaceHolder的颜色 [username_text setValue:[UIColor colorWithRed:1 green:1 blue:1 alpha:0.5] forKeyPath:@"_placeholderLab

键盘弹起收起时不遮挡处理

view初始化时增加通知: {code} //增加监听,当键盘出现或改变时收出消息 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; //增加监听,当键退出时收出消息 [[NSNotificationCenter defaultCenter] addObserver

IOS开发之触摸背景关闭键盘的代码实现

直接上代码: // 触摸背景,关闭键盘 - (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event{ UITouch *touch = [touches anyObject]; UIView *view = (UIView *)[touch view]; if (view == self.view) { [weightTextField resignFirstResponder]; } } 以上代码是在一个viewContro

iOS开发,使用Category实现键盘弹出时,移动View以防被遮住

嗯,直接上代码!!!! 这是.h文件的 #import <UIKit/UIKit.h> @interface UIView (AboutKeyboard) @property (nonatomic) CGFloat moveDistince; @property (nonatomic) UIView *moveView; /* *指定一个View在键盘出现和消失时移动,如果存在superView则移动superView,否则移动自身 */ - (void)registerWhenKeyboar