为什么? 我不知道为什么输出只给了我3个部分。我对numberOfSections和numberOfRowsInSection非常困惑。
我不知道的事情:
为什么输出只返回3个部分?
我所知道的:
我在StackOverFlow上看到了一些帖子,他们说 Sections 就像一个组,行就像这些部分中的单元格一样。但我仍然感到有些困惑。
答案 0 :(得分:4)
嗯,font-size: 250px
和func numberOfSections(in tableView: UITableView) -> Int // Default is 1 if not implemented
是func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int
数据源方法,当您在TableView中只需要相同类型的重复列表时,不需要UITableViews
,如:假设你想在你的tableview中显示以下
1
2
3
4
...
在这种情况下,您需要numberOfSections
numberOfRowsInSection
此处您的表格将返回4个单元格,如果您不提供return 4
此方法,默认情况下它将为1,您的代码将有效在你的课堂上没有这种方法。
但假设你需要在你的tableview中显示出来
1
2
3
4
一个
乙
C
d
可以通过在数组中以字符串形式输入这些数据并在numberOfSections
中打印它来实现。
但是为了使它更有组织,你可以在这里做更好的用户观看是使用部分。像
<强>数强>
1
2
3
4
<强>字母强>
A
乙
C
d
在这里你必须使用cellForAt
它应该返回2,一个用于Number,第二个用于Alphabet。 1,2,3,4和A,B,C,D是它们的数字和字母部分下的行。
我希望你得到它,否则下面的评论我会再次尝试让你理解。
感谢
答案 1 :(得分:3)
答案 2 :(得分:2)
UITableView
以两级层次结构显示其数据:Sections和Rows。
一个部分正是这样的:一种方法可以将一个或多个行组合在一起(这意味着,这取决于所显示的特定数据)。
例如,假设您的数据行包含家电,并且您希望根据在哪个房间对它们进行分组:
- Kitchen
- microwave
- fridge
- toaster
- Bedroom
- computer
- lamp
在这里,您有两个部分(名为Kitchen
和Bedroom
),,它们分别有3行和2行。
或者您可能有按国籍分组的人员列表。或按州分组的城市。您如何使用这种两级层次结构取决于您以及您的数据模型更有意义。
当然,您始终可以通过只包含一个包含所有行的部分来展平层次结构。如果您未实施或覆盖方法numberOfSections(inTableView:)
,则这是默认行为。
答案 3 :(得分:1)
我不知道我是否能比你已经找到的解释更好地解释这一点。 节是行的组,行是节的元素。
可以直观地描述多个部分数据集的对象可以是:
let multipleSection = [["section1-row1", "section1-row2", "section1-row3"], ["section2-row1", "section2-row2", "section2-row3"]]
此数组包含其他数组:每个子数组都是SECTIONS。
每个部分的内容都是属于该部分的ROWS。
我希望它有所帮助,我说得对,这让你感到困惑。