iOS键盘自适应弹出效果
发布时间 - 2026-01-11 02:08:00 点击率:次一、iOS键盘自适应弹出效果图
二、工程图
三、代码
ViewController.h
#import <UIKit/UIKit.h> @interface ViewController : UIViewController <UITextFieldDelegate> @end
ViewController.m
#import "ViewController.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UITextField *field=[[UITextField alloc]initWithFrame:CGRectMake(100, 300, 50, 50)];
field.backgroundColor=[UIColor redColor];
field.delegate=self;
[self.view addSubview:field];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillShow:) name:UIKeyboardWillShowNotification object:nil];
[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(keyboardWillHide:) name:UIKeyboardWillHideNotification object:nil];
}
#pragma -mark -keyboard notificatin
- (void)keyboardWillShow:(NSNotification *)notification {
NSDictionary *info = [notification userInfo];
// keyboardHeight 为键盘高度
CGSize keyboardSize = [[info objectForKey:UIKeyboardFrameEndUserInfoKey] CGRectValue].size;
[self animateViewWithKeyboardHeight:keyboardSize.height];
}
- (void)keyboardWillHide:(NSNotification *)notification {
[self animateViewWithKeyboardHeight:0.0];
}
- (void)animateViewWithKeyboardHeight:(CGFloat)keyboardHeight {
NSTimeInterval animationDuration = 0.3f;
CGFloat height = self.view.bounds.size.height;
CGFloat width = self.view.bounds.size.width;
CGFloat topSize = 0.0;
CGFloat viewH = self.view.frame.size.height-64;
CGFloat deviceHeight = [UIScreen mainScreen].bounds.size.height;
CGFloat animateH = deviceHeight - viewH - keyboardHeight;
if (animateH >= 0) {
topSize = 0;
CGRect toRect = CGRectMake(0, topSize, width, height);
self.view.frame = toRect;
} else {
topSize = animateH;
CGRect toRect = CGRectMake(0, topSize, width, height);
[UIView animateWithDuration:animationDuration animations:^{
self.view.frame = toRect;
}];
}
}
#pragma -mark -UITextFieldDelegate
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
[textField resignFirstResponder];
return YES;
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# iOS键盘自适应弹出
# iOS键盘弹出
# iOS自适应弹出
# ionic在开发ios系统微信时键盘挡住输入框的解决方法(键盘弹出问题)
# 解决ios模拟器不能弹出键盘问题的方法
# iOS应用开发中监听键盘事件的代码实例小结
# 总结IOS关闭键盘/退出键盘的五种方式
# iOS中的UIKeyboard键盘视图使用方法小结
# IOS关闭键盘的方法
# IOS开发中键盘输入屏幕上移的解决方法
# 总结IOS中隐藏软键盘的三种方式
# iOS让软键盘消失的简单方法
# iOS自定义键盘切换效果
# 弹出
# 大家多多
# 自适应
# 工程图
# alloc
# CGRectMake
# initWithFrame
# typically
# view
# loading
# field
# UITextField
# nib
# addObserver
# defaultCenter
# selector
# UIKeyboardWillShowNotification
# keyboardWillShow
# NSNotificationCenter
# UIColor
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
制作电商网页,电商供应链怎么做?
Laravel中间件如何使用_Laravel自定义中间件实现权限控制
html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】
Laravel如何配置和使用队列处理异步任务_Laravel队列驱动与任务分发实例
如何用花生壳三步快速搭建专属网站?
laravel服务容器和依赖注入怎么理解_laravel服务容器与依赖注入解析
怎么制作网站设计模板图片,有电商商品详情页面的免费模板素材网站推荐吗?
深入理解Android中的xmlns:tools属性
详解MySQL数据库的安装与密码配置
Laravel distinct去重查询_Laravel Eloquent去重方法
焦点电影公司作品,电影焦点结局是什么?
laravel怎么实现图片的压缩和裁剪_laravel图片压缩与裁剪方法
Laravel项目如何进行性能优化_Laravel应用性能分析与优化技巧大全
Laravel如何实现事件和监听器?(Event & Listener实战)
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
如何正确选择百度移动适配建站域名?
如何在云指建站中生成FTP站点?
JavaScript如何实现音频处理_Web Audio API如何工作?
Win11怎么设置默认图片查看器_Windows11照片应用关联设置
免费网站制作appp,免费制作app哪个平台好?
宙斯浏览器怎么屏蔽图片浏览 节省手机流量使用设置方法
Laravel DB事务怎么使用_Laravel数据库事务回滚操作
Laravel如何实现API版本控制_Laravel版本化API设计方案
🚀拖拽式CMS建站能否实现高效与个性化并存?
laravel怎么配置Redis作为缓存驱动_laravel Redis缓存配置教程
利用vue写todolist单页应用
Laravel如何编写单元测试和功能测试?(PHPUnit示例)
Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
jquery插件bootstrapValidator表单验证详解
详解免费开源的.NET多类型文件解压缩组件SharpZipLib(.NET组件介绍之七)
Laravel怎么生成URL_Laravel路由命名与URL生成函数详解
桂林网站制作公司有哪些,桂林马拉松怎么报名?
如何在搬瓦工VPS快速搭建网站?
制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?
Laravel如何使用Spatie Media Library_Laravel图片上传管理与缩略图生成【步骤】
googleplay官方入口在哪里_Google Play官方商店快速入口指南
微信小程序 canvas开发实例及注意事项
如何为不同团队 ID 动态生成多个非值班状态按钮
韩国网站服务器搭建指南:VPS选购、域名解析与DNS配置推荐
HTML5空格和nbsp有啥关系_nbsp的作用及使用场景【说明】
Laravel怎么返回JSON格式数据_Laravel API资源Response响应格式化【技巧】
百度输入法全感官ai怎么关 百度输入法全感官皮肤关闭
Java垃圾回收器的方法和原理总结
Laravel如何使用Collections进行数据处理?(实用方法示例)
Laravel用户密码怎么加密_Laravel Hash门面使用教程
Laravel中DTO是什么概念_在Laravel项目中使用数据传输对象(DTO)
瓜子二手车官方网站在线入口 瓜子二手车网页版官网通道入口
车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?
上一篇:佣兵小镇斯拉欧加阵容搭配推荐
下一篇:如何监控Linux系统的实时日志
上一篇:佣兵小镇斯拉欧加阵容搭配推荐
下一篇:如何监控Linux系统的实时日志

