当前位置: 首页 > 面试题库 >

如何快速检测触摸或单击的tableView单元格

濮君植
2023-03-14
问题内容

我正在尝试获取index所选项目,TableView然后开始一些活动。不幸的是,我发现的大多数解决方案都在Objective-C或不起作用。

方法func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath)不打印cell标签。

有人可以帮我吗?

导入UIKit
导入ResearchKit

class TaskListViewController:UIViewController,UITableViewDataSource {

    让task = [(“ Short walk”),
        (以下简称“测听”),
        (“手指轻敲”),
        (“反应时间”),
        (“空间跨度内存”)
    ]


    //表格中有多少节
    func numberOfSectionsInTableView(tableView:UITableView)-> Int {
        返回1
    }

    //返回int多少行
    func tableView(tableView:UITableView,numberOfRowsInSection部分:Int)-> Int {
        返回task.count
    }

    //内容是什么

    func tableView(tableView:UITableView,cellForRowAtIndexPath indexPath:NSIndexPath)-> UITableViewCell {
        var cell = UITableViewCell()

        var(testName)=任务[indexPath.row]
        cell.textLabel?.text = testName
        返回单元
    }

    //为每个表节命名

    func tableView(tableView:UITableView,titleForHeaderInSection部分:Int)->字符串?{

        返回“任务”

    }

    func tableView(tableView:UITableView,didSelectRowAtIndexPath indexPath:NSIndexPath){

        让indexPath = tableView.indexPathForSelectedRow();

        让currentCell = tableView.cellForRowAtIndexPath(indexPath!)作为UITableViewCell!

        println(currentCell.textLabel!.text)
    }


    覆盖func viewDidLoad(){
        super.viewDidLoad()

    }  
}

经过几次尝试,我将代码更改为与我发现的教程不同的代码。而且它也不起作用。现在我认为这是iOS模拟器的问题…

导入UIKit
导入ResearchKit

class TaskListViewController:UIViewController,UITableViewDelegate,UITableViewDataSource {

    @IBOutlet
    var tableView:UITableView?
    var项目:[String] = [“ We”,“ Heart”,“ Swift”]

    覆盖func viewDidLoad(){
        super.viewDidLoad()

        self.tableView!.registerClass(UITableViewCell.self,forCellReuseIdentifier:“ cell”)
    }


    func tableView(tableView:UITableView,numberOfRowsInSection部分:Int)-> Int {
        返回self.items.count;
    }

    func tableView(tableView:UITableView,cellForRowAtIndexPath indexPath:NSIndexPath)-> UITableViewCell {
        var cell:UITableViewCell = self.tableView!.dequeueReusableCellWithIdentifier(“ cell”)as!UITableViewCell

        cell.textLabel?.text = self.items [indexPath.row]

        返回单元
    }

    func tableView(tableView:UITableView,didSelectRowAtIndexPath indexPath:NSIndexPath){
        println(“您选择了单元格#\(items [indexPath.row])!”)
    }

}

问题答案:

如果您想从单元格中获取值,则无需在 didSelectRowAtIndexPath

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    println(tasks[indexPath.row])
}

任务如下:

let tasks=["Short walk",
    "Audiometry",
    "Finger tapping",
    "Reaction time",
    "Spatial span memory"
]

您还必须检查cellForRowAtIndexPath您必须设置的标识符。

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("CellIdentifier", forIndexPath: indexPath) as UITableViewCell
    var (testName) = tasks[indexPath.row]
    cell.textLabel?.text=testName
    return cell
}

希望能帮助到你。



 类似资料:
  • 问题内容: 我有一个带有几个IBOutlet的自定义单元类。我已经将课程添加到情节提要中。我已连接所有网点。我的cellForRowAtIndexPath函数看起来像这样: 这是我的自定义单元格类: 当我运行该应用程序时,我所有的单元格都为空。我已经注销,它包含所有正确的字符串。我也尝试过将等于标签的实际字符串放入,并产生相同的结果。 我想念什么?任何帮助表示赞赏。 问题答案: 感谢所有不同的建议

  • 问题内容: 我试图检测我的sprite节点是否已被触摸并且我不知道从哪里开始。 问题答案: 首先将的属性设置为字符串。 然后在功能上 这是一种方法。 您也可以继承并覆盖其中的内部。 然后做

  • 问题内容: 我发现了一个类似的问题,但是我试图检测并识别用户触摸哪个Sprite,但我不知道该怎么做。这是我的变量: 这个想法是先确定spriteNode,然后将其替换为其他sprite或更改颜色,但是我不知道如何使用此spriteNodes矩阵来实现它,我想第一步是确定sprite。 问题答案: 您正在尝试执行的操作(即使我没有看到这样做的原因)也可以使用委派模式来完成。基本上,您将告诉您的代表

  • 本文向大家介绍sprite-kit 检测触摸,包括了sprite-kit 检测触摸的使用技巧和注意事项,需要的朋友参考一下 示例 您可以覆盖4种SKScene检测用户触摸的方法 请注意,每种方法都接收一个touches参数(在特定情况下),该参数可以包含一个以上的单个触摸事件。

  • 问题内容: 我有一个tableview单元格,其中添加了collectionview单元格(用于水平滚动)。 现在我想在按下水平collectionview的任何单元格时推送到其他导航控制器。怎么做 ?或如何定义细胞压榨的委托方法。 代码: ViewController.swift: CategoryRow.swift VideoCell.swift 问题答案: 在这里,您将在类上的委托方法上单击

  • 我有一个主页按钮图标,它只是一个普通的精灵,里面有一个图像。我想在触摸这个按钮时执行一些操作。如何将触摸式监听器添加到此按钮,或者有其他更简单的方法来实现此目的吗?