gpt4 book ai didi

ios - 如何知道在 IBAction 上单击了哪个 IndexPath.row,以及如何从触发中排除特定按钮

转载 作者:可可西里 更新时间:2023-11-01 02:17:15 24 4
gpt4 key购买 nike

我有一个 UITableViewController。它有一个原型(prototype)单元格,并根据用户查询生成 0 到 100 个单元格。加载后,如果用户点击单元格内的任何地方(特定按钮除外),我希望触发 IBAction。我有多个标签,但我仍然希望在用户点击它们时触发 IBAction。我该如何实现?

这是我加载表格的代码:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellIdentifier = "Cell"
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! TypeOfActivityTableViewCell
cell.activityLabel?.text = activityNames[indexPath.row]
cell.bgImage?.image = UIImage(named: activityPic[indexPath.row])
cell.sloganLabel?.text = slogan[indexPath.row]
return cell
}

为了 MVC 原则,我不想在 tableView 中编写所有这些代码。

最佳答案

要点击单元格中的任何位置,您无需配置 IBAction。只需使用默认的 UITableViewDelegate 即:

func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath){
let geoSearchWord = "geoSearchWord" + searchQuery[indexPath.row]
let geoSearchLat = "&geoSearchWordLat=" + (lat == "" ? "33.9700" : lat)
let geoSearchLon = "&geoSearchWordLon=" + (lat == "" ? "-118.4180" : lon)
let geoSearchRadius = "&geoSearchWordRad=5mi"
let twitterURLRequest: String = "https://quiet-cove-5048.herokuapp.com/tw?\(geoSearchWord)\(geoSearchLat)\ (geoSearchLon)\(geoSearchRadius)"
alamoRequest(twitterURLRequest)
}

否则,如果您的单元格中有用于特定操作的按钮。您必须向该按钮添加操作并分配一个标签以进行识别(点击哪个按钮)。

您可以在 cellForRowAtIndexPath 中添加操作

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cellIdentifier = "Cell"
let cell = tableView.dequeueReusableCellWithIdentifier(cellIdentifier, forIndexPath: indexPath) as! TypeOfActivityTableViewCell
cell.activityLabel?.text = activityNames[indexPath.row]
cell.bgImage?.image = UIImage(named: activityPic[indexPath.row])
cell.sloganLabel?.text = slogan[indexPath.row]
cell.myButton.addTarget(self, action: "myAction:", forControlEvents: .TouchUpInside)
cell.myButton.tag = indexPath.row
return cell
}

点击单元格内的按钮将执行以下功能:

func myAction(sender:UIButton){
let selectedActivityName = activityNames[sender.tag]
}

关于ios - 如何知道在 IBAction 上单击了哪个 IndexPath.row,以及如何从触发中排除特定按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36324635/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com