【问题标题】:Section within a section - UITableView -部分中的部分 - UITableView -
【发布时间】:2011-06-08 14:20:18
【问题描述】:

我只是有一个关于 tableView 的问题。

我知道我们可以返回节数和行数。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

你能告诉我怎样才能有类似的东西:

  • 一个部分中的一个部分(如果可能,还有另一个部分) - - 和 然后在那里配置行?

我会返回什么

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section

【问题讨论】:

    标签: iphone objective-c xcode uitableview


    【解决方案1】:

    您必须在 cellForRowAtIndexPath 中进行自己的实现,在其中返回一个真正由多行组成的行,并且可能是一个标题标签。或者也许更好的是使每隔一行成为“标题行”并检查 cellForRowAtIndexPath 是否在“标题行”或正常行​​上;像这样:

    if (indexPath.row == 0) {
         // return header row
    } else {
         // return normal row
    }
    

    当然,在 numberOfRowsInSection 中,您必须为带有标题的部分返回正常数量的行 + 1。

    【讨论】:

    • 逻辑上听起来很棒!我会在 numberOfSections 和 numberOfRowsInSection 中返回什么?
    • 假设您有 3 个主要部分,第 1 部分有 3 个子部分。 numberOfSections 应该是 3,当 section == 0 时, numberOfRowsInSection 返回行 + 3。一个用于标题和 3 行。而在 cellForRowAtIndexPath 中,只有在 indexPath.row == 0 时,您才会返回特殊的标题行。
    • 对不起,我的意思是(正常行数)+ 3 个标题行。 3 用于标题,然后是普通行。现在您必须跟踪使用标题的位置,因此当在 cellForRowAtIndexPath 中时,您将返回第 0 部分中的第 0、5 和 8 行的标题。这意味着您在 1、2、3 处有正常的行, 4(第 1 小节)、6,7(第 2 小节)等。对于子小节,它会变得(甚至更)复杂,但是您可以使用 NSDictionaries 或其他内容中的 NSDictionaries 生成它们的整个树。
    • 问题是当子部分的单元格像真正的部分标题一样向上滚动时,这个“子部分”不会保留。怎么会这样????
    • 是的,部分标题不会保留,因为它不是标题视图,而是自定义单元格。我也遇到了类似的要求,任何关于如何解决问题的更新都会对我有所帮助
    猜你喜欢
    • 1970-01-01
    • 2011-04-03
    • 1970-01-01
    • 1970-01-01
    • 2012-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多