【问题标题】:Reserving space for the keyboard为键盘预留空间
【发布时间】:2018-05-02 00:25:02
【问题描述】:

我熟悉如何在键盘出现、消失或更改时通过通知获取实际键盘高度。但是我想在屏幕底部有一个聊天视图,上面有一些按钮。这些按钮应尽可能低(出于可用性原因),但不应移动以不被键盘和聊天文本字段覆盖。

换句话说,在最高键盘高度+文本输入高度的高度处应该有一条不可见的线,并且按钮的底部应该与该线对齐。

挑战在于人们使用不同高度的不同键盘,具体取决于语言、设备、iOS 版本和设置。我可以添加一些神奇的常量,并希望 iOS 版本之间的变化不会太大,但我宁愿以某种方式轮询操作系统来给我这些信息,所以一切都会在 iPhone X、iPhone SE、iPad 之间自动更新风景肖像等等。

如何在键盘实际显示之前为其保留足够的空间?

【问题讨论】:

  • 您说您知道如何获得键盘高度,那么对于具有不同键盘高度的用户来说,挑战在哪里?如果你知道高度,为什么还需要一个魔法常数?如果您不希望按钮随键盘移动,只需将它们移动到屏幕顶部即可。这是一个设计问题,而不是编程问题。
  • 这是您要求的吗? stackoverflow.com/a/35689635/5496433
  • @BallpointBen 按钮始终可见,不仅在您使用文本输入时。挑战在于让它们尽可能靠近您的拇指,同时不为键盘移动它们或让它们被键盘覆盖

标签: ios swift


【解决方案1】:

基本上,你不能做你所描述的事情。在它出现之前,你永远不知道会出现的键盘的高度。并且用户可以在它出现后更改键盘高度。没有这样的事情,即让您的按钮“尽可能低(出于可用性原因),但永远不必移动以不被键盘和聊天文本字段覆盖。”他们确实必须移动。

【讨论】:

  • 我唯一能想到的是使用中心 Y 轴线,但这会在较高的 iPhone X 型屏幕上浪费相当多的空间,而且单手使用时很难够到按钮。
  • 我不确定你在说什么。向上滚动视图,或更改滚动视图内容插图的大小,以在键盘出现时对其进行补偿,这是完全标准的。去做吧。
  • 这有点刺耳,在这种情况下移动按钮可能会导致用户无意中按下错误的按钮。我们通过观察真实用户使用该应用程序时注意到了这一点。
  • 但在这一点上,最好的设计是一个意见问题。那不是你问的。你问你是否可以提前知道用户可能召唤的最高键盘是什么,答案是否定的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多