在ios开发时我们会遇到键盘高度无法适应的问题,这时候该怎么解决呢?下面由我教大家怎么解决iOS中的键盘高度变化的问题。
创新互联是一家专业从事成都网站设计、网站制作的网络公司。作为专业的建站公司,创新互联依托的技术实力、以及多年的网站运营经验,为您提供专业的成都网站建设、全网整合营销推广及网站设计开发服务!
完美解决iOS中的键盘适应高度变化的 方法
#pragma mark - reg unreg notification
- (void)regNotification
{
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillChangeFrame:) name:UIKeyboardWillChangeFrameNotification object:nil];
}
- (void)unregNotification
{
[[NSNotificationCenter defaultCenter] removeObserver:self name:UIKeyboardWillChangeFrameNotification object:nil];
}
#pragma mark - notification handler
- (void)keyboardWillChangeFrame:(NSNotification *)notification
{
NSDictionary *info = [notification userInfo];
CGFloat duration = [[info objectForKey:UIKeyboardAnimationDurationUserInfoKey] floatValue];
CGRect beginKeyboardRect = [[info objectForKey:UIKeyboardFrameBeginUserInfoKey] CGRectValue];
CGRect endKeyboardRect = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue];
CGFloat yOffset = endKeyboardRect.origin.y - beginKeyboardRect.origin.y;
CGRect inputFieldRect = self.inputTextField.frame;
CGRect moreBtnRect = self.moreInputTypeBtn.frame;
inputFieldRect.origin.y += yOffset;
moreBtnRect.origin.y += yOffset;
[UIView animateWithDuration:duration animations:^{
self.inputTextField.frame = inputFieldRect;
self.moreInputTypeBtn.frame = moreBtnRect;
}];
}
通过获取键盘消息的开始状态、结束状态,以及变化周期,可以计算出具体的Y偏移,从而在相同时间里做相同偏移量。
猜你喜欢:
2. 怎样把电脑上的照片导入iphone
3. iphone照片怎么导入电脑
4. 电脑ipad模拟器的安装方法
5. 安卓程序员必备的开发工具
6. iPhone5s怎么刷机
键盘高度是一个非固定值,以前都是216,但是现在由于介入太多的第三方键盘,高度五花八门,所以你只能通过键盘弹出的监听来获取键盘高度。
在自定义键盘的时候,碰到要根据横竖屏,然后改变自定义键盘高度的需求,但是发现,无论使用autolayout还是设置frame去改变高度,都没有反应。后面经过查阅,才知道有个Intrinsic Content Size属性。可以设置视图的自定义大小。
关于 intrinsicContentSize 及 约束优先级/content Hugging/content Compression Resistance的详解,参考如下博客:
下面是自己的简单记录:
改变自定义键盘的高度可以设置键盘View的视图Intrinsic Content Size属性。
先设置属性:
然后再调用方法:
大概demo如下:
在苹果手机的键盘设置内,进入到键盘高度功能内向上拖动,即可调节苹果手机键盘的大小。
工具/原料:iPhone12、ios14.1.7。
1、点击工具箱。选择输入法右上角的工具箱图标。
2、点击键盘高度。选择键盘高度的图标进入。
3、设置大小。向上拖动设置键盘的大小。
4、点击完成。选择下方的完成选项即可。
在设置界面,点击【辅助功能】,开启【缩放】。点击【缩放区域】,在缩放区域界面,选择【窗口缩放】,最后将缩放窗口移动至键盘位置即可,详细步骤:
工具/原料:
iPhone11
iOS13.4.1
1、首先,打开手机里的【设置】。
2、在设置界面,点击【辅助功能】。
3、在辅助功能界面,点击【缩放】。
4、在缩放界面,点击【缩放区域】。
5、在缩放区域界面,选择【窗口缩放】。
6、然后返回至上一层界面,在下方设置缩放比例,然后开启【缩放】,此时就会有一个缩放窗口出现。
7、最后将缩放窗口移动至键盘位置即可。