ios动态获得键盘高度,并改变对话框的位置

NSNotificationCenter:键盘出现、消失时的通知

UIKeyboardWillShowNotification;UIKeyboardDidShowNotification;UIKeyboardWillHideNotification;UIKeyboardDidHideNotification;

在要使用键盘的视图控制器中(既viewDidLoad中),接收键盘事件的通知:

- (void) registerForKeyboardNotifications
{

//键盘改变时候会调用
    [[NSNotificationCenter defaultCenter]
addObserver:self selector:@selector(keyboardWasShown:)
name:UIKeyboardWillChangeFrameNotification object:nil];

//键盘收起会调用
    [[NSNotificationCenter defaultCenter] 
addObserver:self selector:@selector(keyboardWasHidden:)
name:UIKeyboardDidHideNotification object:nil];
    
}

- (void) keyboardWasShown:(NSNotification *) notif
{
   
NSDictionary *info = [notif userInfo];
  
 
    NSValue *value = [info
objectForKey:UIKeyboardFrameEndUserInfoKey];
  
 
    CGSize keyboardSize = [value
CGRectValue].size;
   
   
_nameField.frame=CGRectMake(5,
self.view.frame.size.height-keyboardSize.height-30, 155,
30);
    _sexField.frame=CGRectMake(160,
self.view.frame.size.height-keyboardSize.height-30, 155, 30);
}

- (void) keyboardWasHidden:(NSNotification *)
notif
{
    NSDictionary *info = [notif
userInfo];
    
    NSValue *value = [info
objectForKey:UIKeyboardFrameBeginUserInfoKey];
  
 
    CGSize keyboardSize = [value
CGRectValue].size;
    
   
NSLog(@"keyboardWasHidden keyBoard:%f", keyboardSize.height);
  
 
    // keyboardWasShown = NO;
   
_nameField.frame=CGRectMake(5, 269, 155, 30);
   
_sexField.frame=CGRectMake(160, 269, 155, 30);
}

ios动态获得键盘高度,并改变对话框的位置,布布扣,bubuko.com

时间: 2024-10-12 10:14:28

ios动态获得键盘高度,并改变对话框的位置的相关文章

动态获取键盘高度

//在遇到有输入的情况下.由于现在键盘的高度是动态变化的.中文输入与英文输入时高度不同.所以输入框的位置也要做出相应的变化 #pragma mark - keyboardHight -(void)viewWillAppear:(BOOL)animated { [self registerForKeyboardNotifications]; } -(void)viewWillDisappear:(BOOL)animated { [[NSNotificationCenter defaultCente

iOS 动态调整tableViewCell 高度

效果图: 分析:从plist文件中读取数据源,plist最外层是一个Array,Array中存放的是字典,每个字典存放的key值并不完全相同. 一.单元格复用问题 1.首先读取数据源,建立数据模型,这里我只创建了一个数据模型,包含plist中所有的key值所对应的属性. 2.创建tableView,同时定制Cell, 根据category,可以分成四种单元格,在tableView创建单元格时创建4种代码如下: 1 -(UITableViewCell *)tableView:(UITableVie

iOS 动态计算cell高度实用API

// Use the estimatedHeight methods to quickly calcuate guessed values which will allow for fast load times of the table. // If these methods are implemented, the above -tableView:heightForXXX calls will be deferred until views are ready to be display

获取iOS设备键盘高度

最近做了一个自定义键盘,首先是要知道iOS设备各种键盘的高度,下面就来说一下怎么获取键盘的高度. 主要是利用键盘弹出时的通知. 1.首先先随便建一个工程. 2.在工程的 -(void)viewDidload;函数中添加键盘弹出和隐藏的通知,具体代码如下: 1 //增加监听,当键盘出现或改变时收出消息 2 [[NSNotificationCenter defaultCenter] addObserver:self 3 selector:@selector(keyboardWillShow:) 4

iOS键盘中英文切换键盘高度获取通知方法

iOS键盘中英文切换键盘高度获取通知方法, 有需要的朋友可以参考下. 注册通知 - (void)viewWillAppear:(BOOL)animated { [super viewWillAppear:animated]; [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrame:) name:UIKeyboardWillChangeFrameNotific

iOS自定义进度条高度(UIProgressView进度条高度改变的实现)

今天自定义了iOS中的进度条,发现系统的进度条高度无法改变, 现在自己封装了一种进度条(实际是是UIView而不是UIProgressView),可以改变进度条的高度,非常好用,分享给大家,直接上代码: //  CTWBProgress.h //  Created by WBapple on 16/7/31. //  Copyright © 2016年 王彬. All rights reserved. // #import <UIKit/UIKit.h> @interface CTWBProg

iOS键盘监听以及获取键盘高度

在文本输入时,界面会弹出键盘.有时,当文本输入框过低,被键盘遮挡,使用户无法看见输入框文本内容,这就使得用户体验过低. 所以需要我们对键盘进行监控并获取键盘高度,调节界面或文本框高度进行处理.如下图,文本输入框过低的情况: 像这样的情况,如若未作处理,输入框就会被键盘遮挡.这时,我们需要监听键盘事件,获取键盘高度,对文本框视图进行高度调整: 1 #import "ViewController.h" 2 3 @interface ViewController ()<UITextFi

iOS 获取键盘高度

- (void)viewDidLoad { [super viewDidLoad]; //增加监听,当键盘出现或改变时收出消息 [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil]; //增加监听,当键退出时收出消息 [[NSNotificationCenter defa

IOS开发—获取ios软键盘高度

- (void)viewDidLoad { [super viewDidLoad]; //增加监听,当键盘出现或改变时收出消息 <pre name="code" class="objc"><p style="margin-top: 0px; margin-bottom: 0px; font-size: 13px; font-family: Menlo; color: rgb(61, 29, 129);"><span