获取点击手势识别器的标签或索引

Posted

技术标签:

【中文标题】获取点击手势识别器的标签或索引【英文标题】:Getting tag or index for a tap gesture recognizer 【发布时间】:2017-05-24 19:50:39 【问题描述】:

我有一个 uitapgesturerecognizer,用于 uiview。我在滚动视图中有 30 个这样的 uiview。同样在这些视图中的每一个中,每个视图都有一个带有不同单词的标签。现在,当我点击轻击手势识别器时,我想从该特定视图的标签中访问文本。发生的事情是我正在打印索引中最后一个视图的单词。有人可以告诉我如何访问每个索引中的每个视图。

open var Name: UILabel!
open func ynCategoryButtonClicked(_ sender: UITapGestureRecognizer) 
    guard let text = Name.text else  return 
    ynSearch.appendSearchHistories(value: text)
    self.delegate?.ynCategoryButtonClicked(text: text)

【问题讨论】:

【参考方案1】:

您将 tapGesture 分配给“UIButtonView”的位置,添加以下行:

yourButton.accessibilityHint = "YourText"

在你的“buttonTapped()”方法中得到这样的文本:

let yourText = "\(sender.accessibilityHint)"

希望这会有所帮助!

【讨论】:

【参考方案2】:

老实说,听起来您应该使用 UITableView。不管怎样,你应该改变你的委托方法ynCategoryButtonClicked 来传递一个对自身的引用(比如delegate?.ynCategoryButtonClicked(text: text, ynCategory: self))。然后,如果您走 TableView 路线,您可以使用indexPath(for:UITableViewCell) 找到索引。或者,如果你坚持使用滚动视图,你应该能够维护一个视图数组,然后在它们中搜索ynCategory

【讨论】:

以上是关于获取点击手势识别器的标签或索引的主要内容,如果未能解决你的问题,请参考以下文章

自定义页脚视图没有响应我的点击手势识别器标签

Xamarin.Forms 第23局:手势识别

在边界内点击手势识别器

点击手势识别器

更改手势识别器的索引

为什么iOS中的轻敲手势识别器的界面构建器操作不会触发? [重复]