ios 表情符号 键盘_如何获得iOS 8.3表情符号键盘高度?

好.所以看看我的旧代码,我记得,我不使用2个观察者(UIKeyboardDidShowNotification / UIKeyboardDidHideNotification).我使用单个观察者(UIKeyboardWillChangeFrameNotification),这是每个事件触发:键盘隐藏,键盘显示,键盘更改帧.

在我的情况下,文本框和发送按钮嵌套在UIView中,这是在UIViewController的视图中添加的视图,高于一切.

我在viewDidAppear中添加观察者,并删除viewWillDisappear中的观察者(以避免在视图不活动时触发任何通知).

以上信息对您的情况是不必要的,只是为了信息加入.相关代码如下:

添加观察者:

- (void) viewDidAppear:(BOOL)animated {

[super viewDidAppear:animated];

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

}

手柄通知:

- (void) keyboardWillChangeFrame:(NSNotification*)notification {

NSDictionary* notificationInfo = [notification userInfo];

CGRect keyboardFrame = [[notificationInfo objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];

[UIView animateWithDuration:[[notificationInfo valueForKey:UIKeyboardAnimationDurationUserInfoKey] floatValue]

delay:0

options:[[notificationInfo valueForKey:UIKeyboardAnimationCurveUserInfoKey] integerValue]

animations:^{

CGRect frame = self.textViewContainer.frame;

frame.origin.y = keyboardFrame.origin.y - frame.size.height;

self.textViewContainer.frame = frame;

} completion:nil];

}

您可能需要对frame.origin.y …行进行一些调整以进行正确的计算.我不知道你是否有一个UITabBarController或底部的任何酒吧.这里最安全的选择是:

frame.origin.y = self.view.frame.size.height - keyboardFrame.size.height - X;

如果您的VC覆盖整个屏幕,则X为0.如果没有,请使用任何底部的高度.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值