键盘遮挡输入框的问题

    xiaoxiao2021-12-04  14

    iOS开发之时键盘通知之前处理这种问题,总是在触发输入框编辑事件键盘弹出的时候,将当前的View整体向上移动,结束编辑又整体向下移,耗时耗力效率低。

    1.在ViewController.m文件声明

    #import "ViewController.h" @interface ViewController ()<UITableViewDataSource,UITableViewDelegate> @property (nonatomic ,strong) UITableView *tableView; @end

    2.初始化及添加通知观察者

    - (void)viewDidLoad { [super viewDidLoad]; self.tableView = [[UITableView alloc]initWithFrame:CGRectMake(0, 50, self.view.frame.size.width, self.view.frame.size.height - 50)]; self.tableView.delegate = self; self.tableView.dataSource = self; [self.view addSubview:self.tableView]; //键盘将要显示时候的通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(boardWillShow:) name:UIKeyboardWillShowNotification object:nil]; //键盘将要结束时候的通知 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(boardDidHide:) name:UIKeyboardDidHideNotification object:nil]; }

    3.实现通知的响应方法

    -(void)boardWillShow:(NSNotification *)sender{ //获得键盘的尺寸 CGRect keyBoardRect=[sender.userInfo[UIKeyboardFrameEndUserInfoKey] CGRectValue]; //当键盘将要显示时,将tableView的下边距增跟改为键盘的高度 self.tableView.contentInset = UIEdgeInsetsMake(0, 0, keyBoardRect.size.height, 0); } -(void)boardDidHide:(NSNotification *)sender{ //当键盘将要消失时,边距还原初始状态 self.tableView.contentInset = UIEdgeInsetsZero; }

    4.tableView的代理方法

    #pragma mark - UITableViewDelegate #pragma mark - UITableViewDataSource -(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section{ return 15; } -(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath{ static NSString *ider = @"cell"; UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:ider]; if (!cell) { cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ider]; } UITextField *TF = [[UITextField alloc] initWithFrame:CGRectMake(100, 5, 150, 20)]; TF.placeholder = @"请输入"; [cell.contentView addSubview:TF]; cell.textLabel.text = @"测试"; return cell; }
    转载请注明原文地址: https://ju.6miu.com/read-680323.html

    最新回复(0)