gpt4 book ai didi

ios - 在 iOS 中应该使用哪个组件来创建卡片?

转载 作者:行者123 更新时间:2023-11-28 12:40:34 24 4
gpt4 key购买 nike

我想创建一个应用程序,用户可以在其中滚动查看动态创建的卡片(例如 Facebook 的应用程序)。哪个组件更适合此目的?

  • 可在 UIScrollView 中重用 UIView(性能?)
  • UIStackViewUIScrollView 里面? (...?)
  • UITableCellViewUITableView 里面? (不这么认为)

我希望它根据内容有一些阴影和动态高度。

谢谢。


图片 enter image description here

最佳答案

如果您想创建类似于 Facebook 上的新闻提要的内容,那么使用 UITableView 是最佳选择。根据您想要多少种不同的卡片布局,您可以为每个卡片布局创建不同的动态原型(prototype) UITableViewCell。 UITableViews 是最自然的,而且对性能也很好。这基本上就是您首先提到的“UIScrollView 内的可重用 UIView”。 UITableView 是一个 UIScrollView,而 UITableViewCells 基本上是 UIView,是的,它们确实得到重用。在任何给定时间,只需要足够的单元格来显示屏幕上的内容。如果您的动态消息中有 100 个项目,可能仍然只有 7 个单元格,当您滚动浏览动态消息时,这 7 个单元格将被重新用于在动态消息中创建不同的项目。

对于动态高度:您将无法在 Storyboard 中明确声明您想要动态高度。相反,您所做的是为具有不同高度的标签,使 lines 属性等于 0。一旦等于 0,则需要确保从单元格的顶部到底部正确放置了所有约束。您可能有很多元素,但 iOS 需要完美的约束才能明确确定高度。

在相应的 View Controller 中,您在viewDidLoad 方法中编写以下内容:

tableView.rowHeight = UITableViewAutomaticDimension

然后,我建议还执行 tableView.estimatedRowHeight = 150 或类似的操作,这样您的滚动就不会那么不稳定了。

滚动(尤其是向上滚动)不会变得不稳定的 100% 解决方案是实现 tableView 委托(delegate)方法 tableView(:heightForRowAtIndexPath) 方法。

也就是说,这只是关于如何开始的一个小前奏。动态高度的主题可以在网上找到很多教程,也可以在 Stackoverflow 上找到许多关于人们遇到的问题的问题。

关于ios - 在 iOS 中应该使用哪个组件来创建卡片?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39488050/

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