【问题标题】:IPhone: How to implement scrolling behavior, similar to iPhone SMS app [duplicate]iPhone:如何实现滚动行为,类似于 iPhone SMS 应用程序 [重复]
【发布时间】:2011-05-30 15:38:42
【问题描述】:

可能重复:
How to make a UITextField move up when keyboard is present

我正在尝试实现与 iPhone 短信应用的“类似聊天”屏幕非常相似的功能。基本上,它有一个包含所有消息气泡的 ScrollView,底部有一个 TextField,用于编写新消息。

当点击 TextField 时,键盘会出现,并且所有内容似乎都向上滚动,因此 TextField 位于键盘上方而不被它隐藏。

Apple 的文档建议使用 ScrollView 在键盘出现时调整大小(同时保持相同的内容大小)来实现支持键盘外观的屏幕。就我而言,这意味着我需要一个 ScrollView 来包含整个聊天屏幕(消息和 TextField),因此所有内容都会在键盘外观上整齐地调整大小。但是,消息已经在 ScrollView 中,不支持这种行为。

我能看到的唯一选择是以某种方式自行实现改装行为,而不使用外部 ScrollView。但这似乎需要对消息气泡和 TextField 的滚动和调整大小动画进行大量精细编码才能完美运行。

我该怎么办?

【问题讨论】:

  • 您可能想在这里查看答案:stackoverflow.com/questions/1126726/…
  • 这是与那个答案不同的情况。在这种情况下,问题是关于确保在调整滚动视图大小时,滚动视图内的特定文本字段保持可见。在这种情况下,与原生 SMS 应用程序一样,文本字段应该滚动,而是保持在滚动区域下方。由于使用了滚动视图和文本字段以及由于键盘外观而调整大小,这两个完全不同的问题听起来很相似。
  • 所以您也想调整文本字段(也称为气泡聊天)的大小?有点“缩小”整个视图以适应屏幕?

标签: iphone uiscrollview


【解决方案1】:

滚动视图的大小调整实际上是手动完成的,检查键盘的高度并将滚动视图的高度缩短。

在 SMS 屏幕的情况下,文本字段不在滚动视图中,因此您只需在包含发布位的 uiview 上方放置一个滚动视图。当键盘出现时,您可以正常缩小滚动视图并将 uiview 向上滑动相同的键盘高度量。

正如 Apple 所建议的那样,缩小滚动视图并没有什么神奇之处:移动视图同样简单而明智。

【讨论】:

  • 我猜你是对的。我希望苹果建议的滚动技术在这里(以及类似的地方)适用,这样我就可以为所有需要在我的应用程序中响应键盘输入的 ViewController 实现某种“通用”行为。似乎别无选择,只能自己移动视图,就像你建议的那样。谢谢!
猜你喜欢
  • 2011-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多