我有一个UITableView设置了自定义单元格.每个单元都有一个开关,每次交换开关时我都需要获取特定单元的indexPath.每次切换交换机时,如何从UITableView返回单元格的indexPath和自定义单元格?
你可以用indexPathForRowAtPoint这样的:
@IBAction func switchChanged(sender: UIControl) {
let rowPoint = sender.convertPoint(sender.bounds.origin, toView: self.tableView)
let indexPath = self.tableView.indexPathForRowAtPoint(rowPoint)
println(indexPath)
}
Run Code Online (Sandbox Code Playgroud)
这是Objective C版本
- (IBAction)toggleSwitch:(id)sender {
UISwitch *switchInCell = (UISwitch *)sender;
CGPoint pos = [switchInCell convertPoint:switch.bounds.origin toView:tableView];
NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:pos];
}
Run Code Online (Sandbox Code Playgroud)
如果要在自定义单元格中获取单元格的indexPath:
// CustomCell.swift
@IBAction func switchChanged(sender: UIControl) {
let tableView = self.tableView()
let indexPath = tableView?.indexPathForCell(self)
println(indexPath)
}
func tableView() -> UITableView? {
var tableView = self.superview
while (tableView != nil && !(tableView is UITableView)) {
tableView = tableView!.superview
}
return tableView as? UITableView
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1221 次 |
| 最近记录: |