簡單鍵盤處理代碼

布局圖片:

// ViewController.h
#import <UIKit/UIKit.h>

@interface ViewController : UIViewController


@end

// ViewController.m

#import "ViewController.h"

@interface ViewController ()
/** 文本框底部約束*/
@property (weak, nonatomic) IBOutlet NSLayoutConstraint *bottomSpace;
/** 文本框*/
@property (weak, nonatomic) IBOutlet UITextField *textField;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];

    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChange:) name:UIKeyboardWillChangeFrameNotification object:nil];
}

/**
 *  監(jiān)聽鍵盤的frame即將發(fā)生改變的時候調(diào)用
 */
- (void)keyboardWillChange:(NSNotification *)note
{
    // 獲得鍵盤的frame
    CGRect frame = [note.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue];

    // 修改底部約束
    self.bottomSpace.constant = self.view.frame.size.height - frame.origin.y;

    //  執(zhí)行動畫
    CGFloat duration = [note.userInfo[UIKeyboardAnimationDurationUserInfoKey] doubleValue];
    // 約束動畫,利用duration時間去更新約束
    [UIView animateWithDuration:duration animations:^{
        // 強(qiáng)制布局
        [self.view layoutIfNeeded];
    }];
}

- (void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
    [self.view endEditing:YES];
}

- (void)dealloc
{
    [[NSNotificationCenter defaultCenter] removeObserver:self];
}
@end

程序一啟動效果圖片:


點擊文本框效果圖片:

點擊空白區(qū)域效果圖片:

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容