如何使用 UITableViewCell 的 accessoryButton 作为 Popover 的锚点
How to use UITableViewCell's accessoryButton as anchor for a Popover
我尝试使用 UITableViewCell 的 accessoryButton
作为 Popover 的锚点,但无法使用故事板连接它。我以编程方式尝试使用 accessoryButtonTappedForRowWith
函数,这也不起作用。我怎样才能连接它?
如果您的 class 是 UITableViewController
的子 class 则使用:
override func tableView(_ tableView: UITableView, accessoryButtonTappedForRowWith indexPath: IndexPath) {
print(indexPath.row)
}
检查示例代码:
class ViewController: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.textLabel?.text = "\(indexPath.row)"
cell.accessoryType = UITableViewCellAccessoryType.detailButton
return cell
}
override func tableView(_ tableView: UITableView, accessoryButtonTappedForRowWith indexPath: IndexPath) {
print(indexPath.row)
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 10
}
}
如果它是 UIViewController
的子class,那么您在该方法之前不需要 override
,因此它将是:
func tableView(_ tableView: UITableView, accessoryButtonTappedForRowWith indexPath: IndexPath) {
print(indexPath.row)
}
在这种情况下,不要忘记将 table 视图的 UITableViewDataSource
和 UITableViewDelegate
与 ViewController
连接起来。
我尝试使用 UITableViewCell 的 accessoryButton
作为 Popover 的锚点,但无法使用故事板连接它。我以编程方式尝试使用 accessoryButtonTappedForRowWith
函数,这也不起作用。我怎样才能连接它?
如果您的 class 是 UITableViewController
的子 class 则使用:
override func tableView(_ tableView: UITableView, accessoryButtonTappedForRowWith indexPath: IndexPath) {
print(indexPath.row)
}
检查示例代码:
class ViewController: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath)
cell.textLabel?.text = "\(indexPath.row)"
cell.accessoryType = UITableViewCellAccessoryType.detailButton
return cell
}
override func tableView(_ tableView: UITableView, accessoryButtonTappedForRowWith indexPath: IndexPath) {
print(indexPath.row)
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 10
}
}
如果它是 UIViewController
的子class,那么您在该方法之前不需要 override
,因此它将是:
func tableView(_ tableView: UITableView, accessoryButtonTappedForRowWith indexPath: IndexPath) {
print(indexPath.row)
}
在这种情况下,不要忘记将 table 视图的 UITableViewDataSource
和 UITableViewDelegate
与 ViewController
连接起来。