这个问题可能有点过时了,但我一直在使用带有“聊天头”功能的 iOS 版新 Facebook(聊天头仅存在于应用程序中),并且想知道 Facebook 是如何实现这一点的?例如,他们如何处理聊天头的拖动动画,以及(当点击聊天头时)他们如何设法将 UITableView 覆盖在后台的“基础”UIView 之上?
这都是 UIKit 的一部分,还是他们创建了自己的类来处理这个?
为了在评论中回答@StuartM 的问题,在过去的几个月里,我对 UIKit 有了更多的经验,我想我大概知道如果我打算这样做的话,我将如何实现这样的事情。
我要做的是为聊天头创建一个样式化的 UIButton 并将其作为子视图添加到主窗口。对于拖动,我会在 UIButton 中添加一个手势识别器以响应拖动,对于“捕捉到边缘”,我将使用 iOS 7 的新 UIKit Dynamics ( http://www.raywenderlich.com/50197/uikit-动力学教程)。
至于显示带有聊天历史记录的 UITableView 覆盖,我将使用子视图控制器(https://developer.apple.com/library/ios/featuredarticles/ViewControllerPGforiPhoneOS/CreatingCustomContainerViewControllers/CreatingCustomContainerViewControllers.html#//apple_ref/doc/uid /TP40007457-CH18-SW6),至于弹出打开动画,我只会使用默认的 UIView 动画,也许使用动画事务,因为我不确定我是否可以只使用隐式动画来完成所有操作?
我认为应该是这样。老实说,我认为任何掌握这些框架的人都应该能够在他们的 iOS 应用程序中构建任何东西,如果你想在业余时间创建一个类似示例项目的“聊天头”,应该会给你一个相当深入的了解这些框架如何工作。