首页 > 其他 > 详细

轻松搞定UITableView中的键盘处理

时间:2015-03-24 20:59:07      阅读:155      评论:0      收藏:0      [点我收藏+]

技术分享

 

 

技术分享

 

 

代码如下:

1,通知:

#pragma mark - 键盘处理

-(void) keyboardWillShow:(NSNotification *)note{

    // get keyboard size and loctaion

    //键盘的frame

    CGRect keyboardBounds;

    [[note.userInfo valueForKey:UIKeyboardFrameEndUserInfoKey] getValue: &keyboardBounds];

    keyboardBounds = [self.view convertRect:keyboardBounds toView:nil];

    

    //主窗口

    UIWindow* win = [UIApplication sharedApplication].keyWindow;

    DLog(@"%@",win);

    

    //_currentTF是cell中正在编辑的TF

    UITableViewCell* cell = [PCMNWE cellByTableView:self.tableView tf:_currentTF];

    NSIndexPath* indexPath = [self.tableView indexPathForCell:cell];

    CGRect frame = [self.tableView convertRect:[self.tableView rectForRowAtIndexPath:indexPath] toView:win];

    DLog(@"%f",keyboardBounds.size.height);

    CGFloat height = frame.origin.y+44.0;

    if ((height + keyboardBounds.size.height) > UI_SCREEN_HEIGHT) {

        CGRect frameNew = self.tableView.frame;

        frameNew.origin.y -= keyboardBounds.size.height - (UI_SCREEN_HEIGHT - height);

        [UIView animateWithDuration:0.2 animations:^{

            self.tableView.frame = frameNew;

        }];

    }

    

}

 

2,代理:

- (void)textFieldDidEndEditing:(UITextField *)textField {

    

    //将self.tableView.frame打回原形

    [UIView animateWithDuration:0.3 animations:^{

        self.tableView.frame = CGM(0,0, UI_SCREEN_WIDTH, UI_SCREEN_HEIGHT - UI_STATUS_BAR_HEIGHT - 44.0);

    }];

}

 

 

暂时没有发现这段代码有什么问题.

若有BUG,欢迎加QQ指教:771722918(花园晓雨)

 

轻松搞定UITableView中的键盘处理

原文:http://www.cnblogs.com/iOS771722918/p/4363829.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!