有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JAVAswift中的setItemChecked等价性

我想知道如何将一些java代码转换成swift。我在网上查过了,但没有发现任何有用的东西。我找到了j2objc,但我不知道如何让它工作。我只需要翻译一行代码

                        listView.setItemChecked(myArrayList.indexOf(myName);

这是什么。java中的setItemClicked等同于swift中的setItemClicked

简单地说,我有一个列表视图,如果一个对象是从Parse查询的,并且是真的,那么在列表视图中的对象旁边打一个复选标记。但我不知道如何在列表视图中勾选某些内容,而不单击swift中的项目。如何在列表视图中显示复选标记,而不必单击列表视图中的项目


共 (1) 个答案

  1. # 1 楼答案

    注:这仅适用于Swift 2.2

    ListView相当的iOS是UITableView。对于ArrayList<>的Swift等价物是Array。在iOS API中没有setItemChecked这样的方法

    我能想到的最接近的是UITableViewAccessoryCheckmark。但是,也可以在表单元格中放置UISwitch,并将其on属性设置为true

    让我向您展示如何将表格单元格的附件类型设置为UITableViewAccessoryCheckmark,或者用Swift术语设置为.Checkmark

    首先,你需要得到表格单元格。要得到它,你需要一个NSIndexPathNSIndexPath基本上是一个对象,描述单元格所在的部分和行。假设表视图只有一个部分,可以创建如下索引路径:

    let indexPath = NSIndexPath(
        forRow: myArray.indexOfObject(myName), 
        inSection: 0)
    

    请注意,当对象不在数组中时,indexOfObject将返回一个奇怪的数字。如果同一个对象多次出现在数组中,它将返回第一次出现的索引

    现在你有了一个索引路径,你现在可以得到单元格了:

    let cell = tableView.cellForRowAtIndexPath(indexPath)
    

    然后,只需设置accessoryType属性:

    cell?.accessoryType = .Checkmark