首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
c语言
httprequest
java
tags
export
triggers
header
ip
post
require
schema
string
hashset
dll
expression
random
web3
golang
yaml
audio
object
install
default
replace
hashcode
request
char
spring
uml
python3
jar
node.js
eval
settings
chat
httpclient
range
express
rsa
join
python
shell
search
plugins
buffer
controller
command
import
actionscrip
format
dagger
ascii
数组
callback
less
input
grid
js
cmd
php5
substring
int
main
blob
timestamp
php8
list
flutter
io
heap
typescript
javascript
vbscript
iostream
version
tree
hashtable
const
fetch
当前位置:
开发笔记
>
编程语言
> 正文
iPhone/iPad键盘弹出遮挡要编辑内容问题
作者:心动心爱_342 | 来源:互联网 | 2023-01-12 21:45
当系统收到显示键盘的请求时,就从屏幕的底部滑出键盘,并将它放在应用程序内容的上方。由于键盘位于内容的上面,所以有可能遮掩住用户希望编辑的文本对象,只能盲操^_^如何解决可以参考iPhone
当系统收到显示键盘的请求时,就从屏幕的底部滑出键盘,并将它放在应用程序内容的上方。由于键盘位于内容的上面,所以有可能遮掩住用户希望编辑的文本对象,只能盲操^_^
如何解决可以参考iPhone应用程序编程指南 http://www.apple.com.cn/developer/iphone/library/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/TextandWeb/TextandWeb.html#//apple_ref/doc/uid/TP40007072-CH20-SW16
大体思路是:暂时调整一或多个视图的尺寸和位置,从而使文本对象可见。管理带有键盘的文本对象的最简单方法是将它们嵌入到一个UIScrollView(或其子类,如UITableView)对象。当键盘被显示出来时,需要做的只是调整滚动视图的尺寸,并将目标文本对象滚动到合适的位置。为此,在UIKeyboardDidShowNotification通告的处理代码中需要进行如下操作:
1. 取得键盘的尺寸。
2. 将滚动视图的高度减去键盘的高度。
3. 将目标文本框滚动到视图中。
但有时会碰到要编辑字段不在UIScrollView中的情况,比如烟草项目中点击靠近底部的烟草信息,弹出的popover可能会被弹出的键盘遮盖,这时通过简单的调整popover箭头方向即可实现弹出窗口随弹出键盘滑动的效果,当iPad竖着放置时点击列表中靠上部的行,箭头朝上;点击靠下部的行,箭头朝下;iPad横向放置时箭头朝右,效果如图所示:
iPad竖着放置时点击列表中靠上部的行,箭头朝上
点击靠下部的行,箭头朝下
竖向放置弹出键盘效果
横向放置时箭头朝右
横向放置弹出键盘效果
代码如下:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
OrderNumViewController *orderNumViewCOntroller= [[OrderNumViewController alloc] init];
orderNumViewController.cOntainerViewController= self;
if (orderNumPopover == nil) {
orderNumPopover = [[UIPopoverController alloc] initWithContentViewController:orderNumViewController];
}else {
orderNumPopover.cOntentViewController= orderNumViewController;
}
OrderOnlineCell *cell = (OrderOnlineCell *)[tableView cellForRowAtIndexPath:indexPath];
NSArray *indexArray = [tableView indexPathsForVisibleRows];
BOOL upHalf = true;
int halfIndex = indexArray.count / 4;
if (indexPath.row > [[indexArray objectAtIndex:halfIndex] row]) {
upHalf = false;
}
[self showOrderNumPopover:cell isUpHalf:upHalf];
[orderNumViewController release];
}
-(void)showOrderNumPopover:(OrderOnlineCell *)cell isUpHalf:(BOOL)upHalf{
orderNumPopover.popoverCOntentSize= CGSizeMake(400, 320);
CGRect popoverRect = CGRectMake(cell.bounds.origin.x + cell.bounds.size.width - 100,
cell.bounds.origin.y,
27, 32);
UIInterfaceOrientation orientation = self.interfaceOrientation;
UIPopoverArrowDirection direction = UIPopoverArrowDirectionUnknown;
if ((orientation == UIInterfaceOrientationPortrait) || (orientation == UIInterfaceOrientationPortraitUpsideDown)) {
if (upHalf) {
direction = UIPopoverArrowDirectionUp;
}else {
direction = UIPopoverArrowDirectionDown;
}
}else {
direction = UIPopoverArrowDirectionRight;
}
[orderNumPopover presentPopoverFromRect:popoverRect
inView:cell
permittedArrowDirections:direction
animated:YES];
}
本文出自 “何必呢” 博客,请务必保留此出处http://afantihust.blog.51cto.com/2231549/533976
ipad
iphone
keyboard
key
编程
http
io
ide
text
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
request
Sinatra与Ramaze:选择轻量级Ruby框架时的考量
在寻找轻量级Ruby Web框架的过程中,您可能会遇到Sinatra和Ramaze。两者都以简洁、轻便著称,但它们之间存在一些关键区别。本文将探讨这些差异,并提供详细的分析,帮助您做出最佳选择。 ...
[详细]
蜡笔小新 2024-12-20 11:00:15
spring
Spring Boot 中静态资源映射详解
本文深入探讨了 Spring Boot 如何简化 Web 应用中的静态资源管理,包括默认的静态资源映射规则、WebJars 的使用以及静态首页的处理方法。通过本文,您将了解如何高效地管理和引用静态资源。 ...
[详细]
蜡笔小新 2024-12-20 20:02:31
ip
Android 开发面试经验与心得
本文回顾了2017年的转型和2018年的收获,分享了几家知名互联网公司提供的工作机会及面试体验。 ...
[详细]
蜡笔小新 2024-12-21 16:10:08
ip
解决Windows和SSMS中未注册'microsoft.ACE.oledb.12.0'提供程序的问题
本文介绍了解决在Windows操作系统或SQL Server Management Studio (SSMS) 中遇到的“microsoft.ACE.oledb.12.0”提供程序未注册问题的方法,特别针对Access Database Engine组件的安装。 ...
[详细]
蜡笔小新 2024-12-21 15:21:22
string
并发编程 12—— 任务取消与关闭 之 shutdownNow 的局限性
Java并发编程实践目录并发编程01——ThreadLocal并发编程02——ConcurrentHashMap并发编程03——阻塞队列和生产者-消费者模式并发编程04——闭锁Co ...
[详细]
蜡笔小新 2024-12-21 12:39:07
install
Python自动化测试入门:Selenium环境搭建
本文详细介绍如何在Python环境中安装和配置Selenium,包括开发工具PyCharm的安装、Python环境的设置以及Selenium包的安装方法。此外,还提供了编写和运行第一个自动化测试脚本的步骤。 ...
[详细]
蜡笔小新 2024-12-21 10:48:56
object
Java多线程实现:从1到100分段求和并汇总结果
本文介绍如何使用Java编写一个程序,通过10个线程分别计算不同区间的和,并最终汇总所有线程的结果。每个线程负责计算一段连续的整数之和,最后将所有线程的结果相加。 ...
[详细]
蜡笔小新 2024-12-21 10:32:48
install
无屏幕环境下树莓派4B的安装与配置指南
本文将详细介绍如何在没有显示器的情况下,使用Raspberry Pi Imager为树莓派4B安装操作系统,并进行基本配置,包括设置SSH、WiFi连接以及更新软件源。 ...
[详细]
蜡笔小新 2024-12-21 08:14:50
install
推荐几款高效测量图片像素的工具
本文介绍了几款适用于Web前端开发的工具,这些工具可以帮助用户在图片上绘制线条并精确测量其像素长度。对于需要进行图像处理或设计工作的开发者来说非常实用。 ...
[详细]
蜡笔小新 2024-12-20 19:17:07
install
Vue 开发与调试工具指南
本文介绍了如何使用 Vue 调试工具,包括克隆仓库、安装依赖包、构建项目以及在 Chrome 浏览器中加载扩展的详细步骤。 ...
[详细]
蜡笔小新 2024-12-20 16:28:04
install
深入探讨Web页面中的锚点交互设计
本文旨在分享Web前端开发中关于网页锚点效果的实现与优化技巧。随着Web技术的发展,越来越多的企业开始重视前端开发的质量和用户体验,而锚点功能作为提升用户浏览体验的重要手段之一,值得深入研究。 ...
[详细]
蜡笔小新 2024-12-20 15:39:26
request
理解远程过程调用 (RPC) 的概念与演变
远程过程调用(RPC)是一种允许客户端通过网络请求服务器执行特定功能的技术。它简化了分布式系统的交互,使开发者可以像调用本地函数一样调用远程服务,并获得返回结果。本文将深入探讨RPC的工作原理、发展历程及其在现代技术中的应用。 ...
[详细]
蜡笔小新 2024-12-20 15:12:33
string
网页文章访问计数实现
本文介绍了如何通过在数据库表中增加一个字段来记录文章的访问次数,并提供了一个示例方法用于更新该字段值。 ...
[详细]
蜡笔小新 2024-12-20 12:12:15
char
UNIX进程间通信(IPC)详解
本文深入探讨了UNIX/Linux系统中的进程间通信(IPC)机制,包括消息传递、同步和共享内存等。详细介绍了管道(Pipe)、有名管道(FIFO)、Posix和System V消息队列、互斥锁与条件变量、读写锁、信号量以及共享内存的使用方法和应用场景。 ...
[详细]
蜡笔小新 2024-12-20 10:14:51
string
C语言入门精选教程与书籍推荐
本文精选了几本适合不同水平学习者的C语言书籍,从基础入门到进阶提高,帮助读者全面掌握C语言的核心知识和技术。 ...
[详细]
蜡笔小新 2024-12-15 19:35:11
心动心爱_342
这个家伙很懒,什么也没留下!
Tags | 热门标签
c语言
httprequest
java
tags
export
triggers
header
ip
post
require
schema
string
hashset
dll
expression
random
web3
golang
yaml
audio
object
install
default
replace
hashcode
request
char
spring
uml
python3
RankList | 热门文章
1
java多线程_大牛手把手教你!某大厂开发者对于Java多线程的总结,成功入职腾讯
2
springboot集成ativemq
3
csdn博客贴代码方式
4
《哭道士刘无得》翻译 原文赏析诗人唐沈佺期
5
简述React中无状态组件和有状态组件的区别
6
复制品游戏中计算机的作用,是致敬还是抄袭?来看看这个《塞尔达传说》的像素级复制品...
7
opengl从固定渲染管线到可编程渲染管线
8
C语言的auto和register关键字怎么用
9
未能正确加载coogletestextensionoptionspage包_我竟然不再抗拒 Java 的类加载机制了
10
Java是什么(一)
11
函数使用_24.QTableView函数使用,右击菜单实现
12
vue+three.js展示nrrd+vtk3D模型vue框架集成(下)
13
树莓派舵机 c语言,树莓派控制SG90舵机
14
【MATLAB】数据类型 ( 执行代码 | 清空命令 | 注释 | 数字 | 字符 | 字符串 )
15
SQL设计与优化
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有