【问题标题】:Array logic with indexpathforselectedrow带有 indexpathforselectedrow 的数组逻辑
【发布时间】:2015-10-14 04:43:23
【问题描述】:

所以我尝试使用 indexpathforselectedrow 来掌握嵌套数组逻辑! 因此,我将使用示例来解释我的困惑。

我的第一个想法:假设我有

    var colors: array = [“red”,”orange”,”yellow”] 

在表格视图中。
如果我得到橙色的 indexpathforselectedrow,该索引值是多少?我假设这将是 section = 0,row = 1,所以 [0][1]。那是正确的吗?或者因为这是一个简单的数组,该值是否只是一个值? 1?

其次,如果我有一个更高级的数组(请告诉我这个数组设置是否正确)

 var morecolor: [[“green”,”blue”,”teal”][“light green”, “dark green”] 
[“light blue”, “dark blue”][“light teal”, “dark teal”]]

如果我选择了绿色(第一个数组/数组 0)并想选择浅/深绿色数组,第二个数组(或第一个),我将如何处理?

【问题讨论】:

    标签: ios arrays swift logic didselectrowatindexpath


    【解决方案1】:

    一个索引路径(NSIndexPath)由一个部分和一行组成。两者都是整数,从零开始。

    表中的第一部分是第 0 部分,第二部分是 1,依此类推。行也是如此。

    您实现 numberOfSections 来告知您想要多少个部分,并实现 numberOfRowsInSection 来告知每个部分中有多少行(该方法将您需要的行数传递给您的部分编号)。

    通常,您有一个模型来表示要显示的数据,并在 cellForRowAtIndexPath 中为该模型编制索引。

    如果您有一个一维模型,比如说一个简单的颜色列表,您可能只有一个部分,并且模型中的行数与颜色一样多。对应于任何行的颜色类似于:

        model.colors[indexPath.row]
    

    您可以在此处忽略部分,因为您知道它始终为零(您只有 1 个部分)。

    如果您有一个二维模型,比如说一组主题,每个主题都由几种颜色组成,那么您将拥有与主题一样多的部分,并且在每个主题中拥有与颜色一样多的行。对应于任何行的主题和颜色类似于:

        model.theme[indexPath.section].colors[indexPath.row]
    

    许多表视图方法都使用索引路径,因此了解它们的工作原理很有用。

    【讨论】:

      【解决方案2】:

      T0 回答您的第一个问题,是的,您说这样的调用将返回第 0 节第 0 行的项目的索引路径是正确的,但实际上,因为它是索引路径,而不是行的常规整数表示不表示为 1 2 3 4... 等,而是 0 64 128 等... 因此,为了获取返回的行,您可以使用 indexPath.row 访问它,它返回所选行的 int 表示.

      【讨论】:

        猜你喜欢
        • 2021-07-01
        • 2014-07-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-11
        • 2017-03-27
        • 2013-12-04
        相关资源
        最近更新 更多