我有几个带标签Test1,Test2,Test3,Test4和Test5的UITableViewCells。如何查找显示Test3的单元格的indexPath?我不想触摸细胞或做这样的事情。谢谢你的回答!
细胞:
核心数据模型:
答案 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")
}