【问题标题】:Use UIGestureRecognizer to get the UIabel text of UIview使用 UIGestureRecognizer 获取 UIview 的 UIabel 文本
【发布时间】:2018-03-10 10:47:18
【问题描述】:

我想使用UIGestureRecognizer获取UIview(uiViews)的UILabel(标签)的文本值。

但是,在我的代码中出现错误。

请告诉我正确的密码。

func test(){
    let uiViews = uiView.instance()//xib instance
    uiViews.label.text = "Yeah"
    self.addSubview(uiViews)
    uiViews.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(tapped.selected(_:))))
}

@objc func tapped(_ sender: UITapGestureRecognizer) {
    print(sender.label.text) //Value of type 'UITapGestureRecognizer' has no member 'label'
}

//Error
Value of type 'UITapGestureRecognizer' has no member 'label'

【问题讨论】:

    标签: swift xcode swift4 xcode9


    【解决方案1】:

    发送者是 UITapGestureRecognizer,它有一个名为view 的属性,即被点击的视图。使用(sender.view as? uiView)?.label?.text 与 uiView/label 进行交互。

    【讨论】:

    • 这是很常见的情况。系统框架是这样编写的,因此它们的方法会向您传递非特定类型的对象,例如 UIView,甚至是Any。然后,您需要将参数转换为您期望的特定类型。
    猜你喜欢
    • 1970-01-01
    • 2019-10-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多