ios - 我应该选择 ViewController 还是 TableViewController?

标签 ios swift

Swift 新手。我正在尝试编写一个食谱共享应用程序来获得乐趣。其中一个功能是让用户创建一个新的食谱。在此页面上,用户应该能够介绍要创建的食谱,上传图像,然后动态添加成分列表(因为我们事先不知道总共有多少成分)。

我创建了一个 UIViewController,其中包括一个 UIViewTable、一个 ImageView 和一个“添加其他成分”按钮。我为成分创建了一个类。当按下“添加”按钮时,一个新的“成分”单元格将被添加到表格中。但是,我发现动态调整 UIViewTable 高度非常困难。

我希望我的表格根据单元格(行)的数量调整其高度。我没有在网上找到太多有用的信息。

或者我什至不应该使用这个结构。相反,只需使用 UITableController(整个页面是一个表格)?但我感到困惑的是,某些元素( ImageView 、提交食谱按钮、食谱介绍文本字段等)只会创建一次。为什么我费心将它们制作成原型(prototype)单元并以编程方式将它们添加到我的 View 中?

提前致谢!

最佳答案

首先,欢迎使用 Swift!

你把几个问题放在一起,我会尽量一一解答。让我们从简单的东西开始。

不要试图根据项目的数量改变 UITableView 的高度。如果你想实现类似的功能,看看 UIStackView。为 tableView 设置固定大小,最好使用自动布局进行约束。

如果没有足够的单元格来覆盖所有空间,UITableView 应该填充指定的空间并在内部滚动项目或在顶部显示单元格。 UITableView 经过高度优化,可以在背景上重复使用单元格时滚动大量单元格。如果您是 iOS 世界的新手,请查看此功能 https://developer.apple.com/documentation/uikit/uitableviewcell/1623223-prepareforreuse它可以节省您数小时的调试时间(我去过那里)

UITableView 与 UITableController UITableController 可以为您节省几行代码,但是在 UIViewController 内部使用 UITableView 可以给您更多的自由,并且如果您的应用程序将来可能会发生变化,则可以节省您的重构时间。 UITableController 没有特别的优势

如果您想提供额外的元素( ImageView 、提交按钮、文本字段等),您可以使用多种方法,这就是带有您自己的 UITableView 的 UIViewController 派上用场的地方。

  • 您可以像 native 日历应用一样,将一些按钮(例如加号图标或“完成”按钮)放入导航栏中。

  • 您可以将静态内容(介绍文本字段、 ImageView )放在表格 View 上方(始终可见)。使用约束将静态内容放在 viewController.view 上,并将 TableView 约束在静态内容下。 TableView 将占用更少的 View 空间,从而为您的内容保留空间。

  • 将您的静态内容作为表格 View 标题插入(将与内容一起滚动)。在堆栈溢出上搜索“HeaderView”,了解如何实现。

  • 将您的内容放在 tableView 上。如果您的按钮很小(圆形),您可以将它放在 tableView 上,例如。 Twitter 将其用于新的补间按钮。

希望这能回答您的问题。干杯!

关于ios - 我应该选择 ViewController 还是 TableViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57846134/

相关文章:

iOS:简单的保留周期

ios - 在 Swift 中将 TextField Delegate 设置为 ViewController 中的另一个类不起作用

Swift 可编码、可解码与可编码

ios - 为什么字体是可选的?

ios - 如何在 UserDefault 中存储推送通知警报消息?

ios - 尝试实现 iAd 删除但得到 "AnyObject is not convertible to..."

Ios DBAccess 查询调试

objective-c - 方法返回的对象的内存管理 (iOS/Objective-C)

swift - 如何使用 SwiftyDropbox 自动登录?

ios - 如何在小游戏中正确复用UIView?