关于uiscrollview:IPhone:如何实现滚动行为,类似于iPhone SMS应用程序

IPhone: How to implement scrolling behavior, similar to iPhone SMS app

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How to make a UITextField move up when keyboard is present

我正在尝试实现类似于iPhone短信应用程序"聊天"屏幕的功能。基本上,它有一个包含所有消息气泡的滚动视图,底部有一个文本字段,用于编写新消息。

单击文本字段时,键盘出现,所有内容似乎都向上滚动,这样文本字段就在键盘上而不是隐藏在键盘上。

苹果的文档建议实现一个支持键盘外观的屏幕,使用一个在键盘出现时调整大小的滚动视图(同时保持相同的内容大小)。在我的例子中,这意味着我需要一个滚动视图来包含整个聊天屏幕(消息和文本字段),这样所有东西都可以在键盘外观上整齐地调整大小。但是,消息已经在滚动视图中,不支持此行为。

我能看到的唯一选择是,在不使用外部滚动视图的情况下,以某种方式实现自己的重新装配行为。但是,这看起来像是对消息气泡和文本字段的滚动和调整动画大小进行了大量精细的编码,以便完美地工作。

我该怎么办?


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

在短信息屏幕的情况下,文本字段不在滚动视图中,因此您只需要在包含发布位的uiview上面有一个滚动视图。当键盘出现时,您按正常方式缩小滚动视图,并将uiview向上滑动相同的键盘高度。

缩小滚动视图并不像苹果建议的那样神奇:移动视图同样简单和明智。