【问题标题】:Create a Mention friend in iOS with Objective-C使用 Objective-C 在 iOS 中创建 Mention 好友
【发布时间】:2017-03-17 19:27:22
【问题描述】:

还在学习 iOS 开发,想在 Facebook / Instagram 上创建类似提及朋友喜欢的东西。

Mention People UI in Instagram

是否使用新的 TableViewController 并将子视图添加到同一个视图控制器? (在这种情况下,CommentViewController),但是,当我的 CommentViewController 中已经有 UITableViewController 时,我该如何处理第二个 tableviewcontroller?

【问题讨论】:

  • 如果你使用 UITableViewController,我认为这是不可能的,但是如果你在 UIViewController 中使用 UITableView,那么你可以使用 Tag 来做到这一点
  • “我该如何处理..?”不是很具体,试着更清楚你已经做了什么,你的目标是什么。

标签: objective-c iphone xcode8 ios10 mention


【解决方案1】:

查看您提供的图像,似乎实现此功能的最佳方法是添加了 UITableView 的 UIViewController。创建的每个 tableview 都可以为其设置一个委托和数据源。当 textview 检测到正在输入提及时(稍后将详细介绍如何检测),您将触发第二个 tableview 显示为覆盖当前 tableview 的附加视图(子视图)(或作为键盘的附件视图,苹果的方式和其他人在键盘上显示文本视图以进行文本输入,例如:消息应用程序)。

为了管理这两个表视图,我的建议是创建两个额外的类,每个类都符合 UITableViewDelegate 和 UITableViewData 源。第一个是 CommentsTableViewManager,第二个是 MentionsTableViewManager。第一个表视图将 CommentsTableViewManager 设置为其委托和数据源,而第二个表视图将使用 MentionsTableViewManager。

您稍后可能会遇到的另一个问题是确定如何正确检测输入到 textview 中的提及。我实际上已经创建了一个开源库来帮助你解决这个问题。它位于此处:https://github.com/szweier/SZMentionsSwift README 应该为您提供足够的信息,以便您开始使用它。

我希望有关信息可以帮助您开始使用您的应用程序。

【讨论】:

    【解决方案2】:

    从架构的角度来看,根据当前模式,最好使用带有更改的数据源容器的单个表视图。

    以 instagram 方式说话 - 您正在显示 cmets,或者,如果检测到 @ 符号,则显示用户列表。因此,几乎所有 UITableView 的委托和数据源方法都将以 if (isMentionMode) 之类的开头,并且您将选择特定的单元格类/单元格的高度/每个部分的行数/等取决于 isMentionMode 状态。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-27
      • 2019-02-01
      • 2011-03-03
      • 2017-11-09
      相关资源
      最近更新 更多