如何在列表项周围创建带有圆角的 table 视图
How to create table view with rounded corners around the list items
我正在尝试重新创建一个类似于 iOS 13 健康应用程序详细视图中的菜单。请参考标记的屏幕截图。
我知道这可以通过 table 视图来完成。有一个部分标题和列表项。但我想要实现的是类似于屏幕截图中显示的外观,其中列表项(不包括部分标题)有背景颜色,列表顶部和底部有圆角。
任何人都可以告诉我如何使用 table 视图实现此目的吗?或者指出我正确的方向?我已经知道如何设置 table 视图并以编程方式添加详细信息。我只需要有关如何实现如下所示样式的帮助。
谢谢!
做起来并不复杂。这是可以完成该样式的多种方式之一。
一个。您可以使用分组的 tableView,如屏幕截图中所示。
b。提供部分标题,或者更好的是,提供部分视图(以进行更多自定义!)。
c。对于每个部分,您有一个 tableViewCell。
d。对于 c. 的每个单元格,您将拥有一个 tableView。
e。对于 d. 的每个 tableView,您当然会有一个新单元格(项目单元格)。
f。如何计算 e. 的 tableView 的高度?有多种方法。
- 提供静态高度(如果您的项目数量是静态的)。
如果是动态计数,但是每个单元格的高度是恒定的,那么你可以这样计算:itemsCount * heightConstantOfCell
如果你再次有rows/items的动态计数,并且你有每个单元格的恒定高度或每个单元格的动态高度,那么你可以观察整个tableView的框架键.
克。最后,只需在 d..
中为 tableView 的每个容器视图添加一些圆角半径
请注意,此屏幕截图仅显示项目 g.。它只是 tableView 的每个容器视图在 tableViewCell 中的一个角半径,它是主 tableView 的一个单元格。
另一种方法是使用 UICollectionView,但比我讨论的要复杂一些 - 至少对我来说是这样。
所以,我想通了。为了让陷入同样困境的开发者受益,我在这里发布了我的解决方案。但我会将上面格伦的回答标记为正确答案,因为它引导我找到解决方案。再次感谢格伦!
看来我不需要对我的代码做任何特殊的事情。我刚刚发现在 XCode 11 和 iOS 13 上,有一个名为 "Inset Grouped" 的新 table 视图样式。您可以从 IB 或通过代码设置此 属性。
通过快速实验,我得出了如下屏幕截图所示的结果。
我正在尝试重新创建一个类似于 iOS 13 健康应用程序详细视图中的菜单。请参考标记的屏幕截图。
我知道这可以通过 table 视图来完成。有一个部分标题和列表项。但我想要实现的是类似于屏幕截图中显示的外观,其中列表项(不包括部分标题)有背景颜色,列表顶部和底部有圆角。
任何人都可以告诉我如何使用 table 视图实现此目的吗?或者指出我正确的方向?我已经知道如何设置 table 视图并以编程方式添加详细信息。我只需要有关如何实现如下所示样式的帮助。
谢谢!
做起来并不复杂。这是可以完成该样式的多种方式之一。
一个。您可以使用分组的 tableView,如屏幕截图中所示。
b。提供部分标题,或者更好的是,提供部分视图(以进行更多自定义!)。
c。对于每个部分,您有一个 tableViewCell。
d。对于 c. 的每个单元格,您将拥有一个 tableView。
e。对于 d. 的每个 tableView,您当然会有一个新单元格(项目单元格)。
f。如何计算 e. 的 tableView 的高度?有多种方法。
- 提供静态高度(如果您的项目数量是静态的)。
如果是动态计数,但是每个单元格的高度是恒定的,那么你可以这样计算:itemsCount * heightConstantOfCell
如果你再次有rows/items的动态计数,并且你有每个单元格的恒定高度或每个单元格的动态高度,那么你可以观察整个tableView的框架键.
克。最后,只需在 d..
中为 tableView 的每个容器视图添加一些圆角半径请注意,此屏幕截图仅显示项目 g.。它只是 tableView 的每个容器视图在 tableViewCell 中的一个角半径,它是主 tableView 的一个单元格。
另一种方法是使用 UICollectionView,但比我讨论的要复杂一些 - 至少对我来说是这样。
所以,我想通了。为了让陷入同样困境的开发者受益,我在这里发布了我的解决方案。但我会将上面格伦的回答标记为正确答案,因为它引导我找到解决方案。再次感谢格伦!
看来我不需要对我的代码做任何特殊的事情。我刚刚发现在 XCode 11 和 iOS 13 上,有一个名为 "Inset Grouped" 的新 table 视图样式。您可以从 IB 或通过代码设置此 属性。
通过快速实验,我得出了如下屏幕截图所示的结果。