gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 07:54:26 24 4
gpt4 key购买 nike

Instagram 和 Facebook 都允许用户对新闻提要发表评论。在评论场景中,他们基本上有一个包含所有评论的 UITableView 和一个“页脚”,用户可以在其中输入评论并发布评论。所以“页脚”是一个带有 UITextField/UITextView 和 UIButton 的 UIView 或 UIToolBar。从表面上看确实很简单。好吧,我一直在尝试实现它,但键盘不配合。我需要键盘不隐藏“页脚”。特别是现在在 iOS 8 中,键盘附带了一个建议工具栏,用户可以选择显示或隐藏。所有这些交互使得在用户输入文本时很难将我的“页脚”保持在键盘上方。每次我认为我已经找到了解决方案时,我都会发现大量错误。

  • 在一种实现中,我使用键盘通知来监听键盘何时向上或向下(部分基于 iPhone Keyboard Covers UITextField )。此实现的问题在于,键盘显示时以及“页脚”从屏幕底部爬到键盘顶部时存在大约 1 到 2 秒的延迟。第二个问题是,当用户在打字时拖动建议工具栏以显示或隐藏它时,它会导致我的“页脚”以不可预测的方式移动:这意味着我将需要一些静态变量来仔细跟踪与建议工具栏的累积交互,以便修复该错误。另请注意,我将“页脚”放在引号内。那是因为我指的不是 UITableView 页脚。而是我按照 UITableView, make footer stay at bottom of screen? 建议在 TableView 下创建的 View 。

  • 我尝试的另一个实现是使用“页脚”和键盘工具栏。当用户单击页脚的 UITextField 时,这将导致键盘显示页脚的副本作为 inputAccessoryView。这基本上是为了在视觉上欺骗用户,让他们认为这是与键盘无缝爬升的同一个页脚。但实际上我使用两个复合 View :一个“页脚”和一个键盘工具栏。我遇到的第一个问题是我似乎无法以编程方式使工具栏文本字段成为第一响应者。这实际上曾经在 ios-7 中工作过。但自从我更新到 iOS-8 后它就不起作用了。因此,如果我执行 footerTextField.inputAccessoryView=keyboardToolBar 然后在文本字段委托(delegate)方法中检查 if(textField==footerTextField){[tooBarTextField comeFirstResponder];},iOS-8 只是忽略整个事情,或者更糟糕的是,完全关闭键盘和工具栏,因此实际上当我单击 footerTextField 时键盘永远不会显示,因为显示和关闭发生得如此之快。所以这又在 iOS-7 中起作用了,但在 iOS-8 中它不起作用。

  • 第三种方法是使父 View 成为 TPKeyboardAvoidingScrollView,这样我就有父 View 、 subview UITableView 和“页脚”。虽然 TPKeyboardAvoiding 在应用程序的其他场景中为我工作,但无论出于何种原因它在这里不起作用。我的猜测是因为我使用 UITableView 作为 UIScrollView 的子级之一。

  • 第四种方法是使我的“页脚”成为实际的 UITableView 部分页脚;部分页脚,因为我希望它 float 在底部。节页脚的问题在于它们不粘在底部,这会在滚动表格时带来视觉上不稳定的用户体验。

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

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

最佳答案

SlackTextViewController似乎满足您的所有要求,并且写得非常好。

关于ios - 如何实现类似于 Facebook 或 Instagram 的新闻评论页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26045048/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com