0

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

在 Instagram 中提及人物 UI

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

4

2 回答 2

0

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

以 instagram 方式说话 - 您正在显示评论,或者,如果@检测到符号,则显示用户列表。因此,几乎所有 UITableView 的委托和数据源方法都将以类似的方式开始,if (isMentionMode)您将根据状态选择特定的单元格类/单元格的高度/每节的行数/等isMentionMode

于 2017-08-16T08:35:24.073 回答
0

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

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

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

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

于 2016-12-07T00:09:52.317 回答