如何实现类似Facebook或Instagram的新闻源评论页面

Instagram和Facebook都允许用户对新闻提要进行评论。 在评论场景中,他们基本上都有一个包含所有评论和“页脚”的UITableView,用户可以在其中input评论和发表评论。 所以“页脚”是UITiew或UIToolBar与UITextField / UITextView和UIButton。 从它的外观真正简单的东西。 那么我一直在试图执行它和键盘不合作。 我需要键盘才能隐藏“页脚”。 特别是现在在iOS 8中,键盘带有一个用户可以select显示或隐藏的build议工具栏。 所有这些交互使用户在input文本时很难将“页脚”保持在键盘的正上方。 每次我想我指出解决scheme,我发现了大量的错误。

  • 在一个实现中,我使用键盘通知来监听键盘启动或closures(部分基于iPhone键盘覆盖UITextField )。 这个实现的问题是,当键盘显示出来并且“页脚”从屏幕底部爬到键盘的顶部时,存在大约1到2秒的滞后时间。 第二个问题是,当用户拖动build议工具栏来显示或隐藏它时,它会导致我的“页脚”以不可预知的方式移动:这意味着我需要一些静态variables来精确跟踪与build议工具栏的累积交互修复这个错误。 另外请注意,我把“footer”放在引号内。 这是因为我不是指UITableView页脚。 而是在UITableViewbuild议的表视图下创build一个视图,使页脚停留在屏幕底部?

  • 我试过的另一个实现是使用“页脚”和键盘工具栏。 当用户单击页脚的UITextField时,会导致键盘显示为脚注的副本作为inputAccessoryView。 这基本上是为了在视觉上欺骗用户认为它是用键盘无缝攀登的同样的页脚。 但实际上我使用了两个复合视图:“页脚”和键盘工具栏。 我遇到的第一个问题是我似乎无法以编程方式使工具栏文本字段成为第一响应者。 这实际上用于在ios-7中工作。 但是,因为我更新到iOS-8,它不起作用。 所以,如果我做footerTextField.inputAccessoryView=keyboardToolBar ,然后在textfield委托方法检查if(textField==footerTextField){[tooBarTextField becomeFirstResponder];} ,iOS-8只是忽略了整个事情,更糟的是,closures键盘和工具栏总之,实际上键盘从来没有出现,当我点击footerTextField,因为显示和解散发生得如此之快。所以再次这用于在iOS-7中工作,但在iOS-8中它不起作用。

  • 第三种方法是使父视图TPKeyboardAvoidingScrollView,使我有父母,孩子UITableView和“页脚”。 在这里虽然TPKeyboardAvoiding已经在我的应用程序的其他场景,因为任何原因,它不在这里工作。 我的猜测是因为我使用UITableView作为UIScrollView的子项之一。

  • 第四种方法是让我的“页脚”成为实际的UITableView页脚; 部分页脚,因为我想它浮在底部。 部分页脚的问题是,他们不坚持底部,当您滚动表时,给用户一个视觉上不稳定的用户体验。

好吧,我已经说了很多。 所以最后,有没有人实现了类似于Facebook的/ Instagram的NewsFeed评论场景? 如果是这样,你能帮我吗?

回顾一下:Facebook / Instagraminput文本字段随文本增长; 无论键盘的build议工具栏是显示还是隐藏,都会粘贴到键盘的顶部; 当键盘消失时,粘在屏幕的底部。

SlackTextViewController似乎符合您的所有要求,写得非常好。