iOS屏幕根据键盘自动变化高度

发布时间 - 2026-01-11 02:12:54    点击率:

一、效果图

二、代码

ViewController.h

#import <UIKit/UIKit.h>

@interface ViewController : UIViewController
<UITextFieldDelegate>

@end

ViewController.m

#import "ViewController.h"

#define W [UIScreen mainScreen].bounds.size.width
#define H [UIScreen mainScreen].bounds.size.height

@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];
}

#pragma -mark -UITextFieldDelegate
-(BOOL)textFieldShouldReturn:(UITextField *)textField
{
  [textField resignFirstResponder];
  
  //self.view 恢复原位
  NSTimeInterval animationDuration=0.10f;
  [UIView beginAnimations:@"ResizeForKeyboard" context:nil];
  [UIView setAnimationDuration:animationDuration];
  float width = W;
  float height = H;
  float Y = 0.0f;
  CGRect rect=CGRectMake(0.0f,Y,width,height);
  self.view.frame=rect;
  [UIView commitAnimations];

  
  return YES;
}

-(BOOL)textFieldShouldBeginEditing:(UITextField *)textField
{
  NSTimeInterval animationDuration=0.30f;
  [UIView beginAnimations:@"ResizeForKeyboard" context:nil];
  [UIView setAnimationDuration:animationDuration];
  float width = W;
  float height = H;
  //上移100个单位,按实际情况设置
  CGRect rect=CGRectMake(0.0f,-100,width,height);
  self.view.frame=rect;
  [UIView commitAnimations];
  
  return YES;
}


- (void)didReceiveMemoryWarning {
  [super didReceiveMemoryWarning];
  // Dispose of any resources that can be recreated.
}

@end

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。


# iOS  # 屏幕  # 键盘  # 高度  # iOS开发中使用屏幕旋转功能的相关方法  # iOS开发中控制屏幕旋转的编写方法小结  # 总结iOS App开发中控制屏幕旋转的几种方式  # iOS开发之使用Storyboard预览UI在不同屏幕上的运行效果  # iOS应用开发中使用Auto Layout来适配不同屏幕尺寸  # IOS开发中键盘输入屏幕上移的解决方法  # iOS如何获取屏幕宽高、设备型号、系统版本信息  # iOS屏幕适配开发实用技巧  # iOS中滑动控制屏幕亮度和系统音量(附加AVAudioPlayer基本用法和Masonry简单使用)  # iOS 中根据屏幕宽度自适应分布按钮的实例代码  # 实际情况  # 大家多多  # viewDidLoad  # void  # additional  # super  # implementation  # width  # size  # bounds  # height  # field  # UITextField  # initWithFrame  # alloc  # nib  # loading  # setup  # typically  # view 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 电视网站制作tvbox接口,云海电视怎样自定义添加电视源?  如何用免费手机建站系统零基础打造专业网站?  JS碰撞运动实现方法详解  linux写shell需要注意的问题(必看)  Laravel如何使用集合(Collections)进行数据处理_Laravel Collection常用方法与技巧  Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】  JS中使用new Date(str)创建时间对象不兼容firefox和ie的解决方法(两种)  北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?  node.js报错:Cannot find module &#39;ejs&#39;的解决办法  专业企业网站设计制作公司,如何理解商贸企业的统一配送和分销网络建设?  微博html5版本怎么弄发超话_超话进入入口及发帖格式要求【教程】  Laravel如何使用Socialite实现第三方登录?(微信/GitHub示例)  如何制作一个表白网站视频,关于勇敢表白的小标题?  标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析  成都网站制作公司哪家好,四川省职工服务网是做什么用?  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  Laravel Telescope怎么调试_使用Laravel Telescope进行应用监控与调试  千库网官网入口推荐 千库网设计创意平台入口  如何为不同团队 ID 动态生成多个独立按钮  Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】  如何在阿里云购买域名并搭建网站?  Laravel如何正确地在控制器和模型之间分配逻辑_Laravel代码职责分离与架构建议  Laravel怎么处理异常_Laravel自定义异常处理与错误页面教程  iOS UIView常见属性方法小结  Laravel广播系统如何实现实时通信_Laravel Reverb与WebSockets实战教程  如何在七牛云存储上搭建网站并设置自定义域名?  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  Laravel怎么清理缓存_Laravel optimize clear命令详解  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  如何自己制作一个网站链接,如何制作一个企业网站,建设网站的基本步骤有哪些?  Laravel如何操作JSON类型的数据库字段?(Eloquent示例)  JavaScript中如何操作剪贴板_ClipboardAPI怎么用  如何在阿里云香港服务器快速搭建网站?  网站制作大概多少钱一个,做一个平台网站大概多少钱?  Python面向对象测试方法_mock解析【教程】  Laravel如何安装使用Debugbar工具栏_Laravel性能调试与SQL监控插件【步骤】  如何生成腾讯云建站专用兑换码?  音乐网站服务器如何优化API响应速度?  Laravel怎么实现前端Toast弹窗提示_Laravel Session闪存数据Flash传递给前端【方法】  Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】  如何在Windows服务器上快速搭建网站?  Laravel的Blade指令怎么自定义_创建你自己的Laravel Blade Directives  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  Laravel如何使用Vite进行前端资源打包?(配置示例)  Laravel如何使用模型观察者?(Observer代码示例)  如何在云虚拟主机上快速搭建个人网站?  JavaScript如何实现倒计时_时间函数如何精确控制  小视频制作网站有哪些,有什么看国内小视频的网站,求推荐?  高防服务器租用首荐平台,企业级优惠套餐快速部署  laravel怎么为应用开启和关闭维护模式_laravel应用维护模式开启与关闭方法