找出cell的indexPath

时间:2015-07-02 18:35:16

标签: ios swift uitableview nsindexpath

我有几个带标签Test1,Test2,Test3,Test4和Test5的UITableViewCells。如何查找显示Test3的单元格的indexPath?我不想触摸细胞或做这样的事情。谢谢你的回答!

细胞:

enter image description here

核心数据模型: enter image description here

5 个答案:

答案 0 :(得分:1)

创建对单元格的类变量引用,然后在cellForRow中为单元格分配" Test3"标签到你的类变量。

var test3Cell: UITableViewCell?

// ...

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {

        let cell = ... // Declaration here

        // set up the cell

        if cell.textLabel?.text == "Test3" {
            self.test3Cell = cell
        }

        return cell
    }

答案 1 :(得分:1)

在单元格级别执行它似乎是倒退 - 您的数据模型(表格UITableViewDataSource)似乎更容易查询。

答案 2 :(得分:0)

如果您对标签有提及,可以使用indexPathForRowAtPoint

let pointInTable = sender.convertPoint(theLabel.bounds.origin, toView: self.tableView)
let indexPath = self.tableView.indexPathForRowAtPoint(pointInTable)

indexPath其中indexPath是可选的。

答案 3 :(得分:0)

你是如何填表的?如果使用NSArray中的内容填充tableview单元格中的标签,则可以从Array obj中的项目索引中找到索引路径。

如果没有,我能想到的方法是遍历tableView

中的表格单元格

表视图响应以下方法     func numberOfSections() - >诠释     func numberOfRowsInSection(section:Int) - > INT

你可以使用每行的上述信息创建一个NSIndexPath实例.NSIndexPath(forRow:,inSection:)

使用
获取UITableviewCell实例  func tableView(tableView:UITableView,cellForRowAtIndexPath indexPath:NSIndexPath) - >的UITableViewCell

然后你可以检查单元格中的标签文本,看它是否符合你的需要。

答案 4 :(得分:0)

此方法将检查tableview中当前的可见单元格,并遍历它们以查找文本。

// Swift 1.2
// Store current visable cells in an array
let currentCells = tableView.visibleCells() as Array

 // Iterate through cells looking for a match
 for cell in currentCells {
    println (cell.textLabel?!.text)

    if cell.textLabel?!.text == "Test 3" {
        println("Test 3 Found")
    }
}


// Swift 2.0
// Store current visable cells in an array
let currentCells = tableView.visibleCells

// Iterate through cells looking for a match
for cell in currentCells where cell.textLabel?.text == "Test 3" {
    print("Test 3 found") 
}