簡體   English   中英

如何在 Swift 3 中制作可點擊的 UILabel?

[英]How can I make a clickable UILabel in Swift 3?

我正在嘗試按照以下代碼制作可點擊的UILabel

class ViewNotificationsDetails: UIViewController {    
   @IBOutlet weak var back: UILabel!

      override func viewDidLoad() {
          super.viewDidLoad()

          let tap = UITapGestureRecognizer(target: self, action: #selector(ViewNotificationsDetails.tapFunction))
          back.isUserInteractionEnabled = true
          back.addGestureRecognizer(tap)
      }

      @objc func tapFunction(sender:UITapGestureRecognizer) {
          print("tap working")
      } 
}

但是在執行代碼時,我收到錯誤 ->

線程 1:致命錯誤:在“back.isUserInteractionEnabled = true”行上解開 Optional 值時意外發現 nil。

可能是什么問題呢?

試試這個代碼,對我來說效果很好

class ViewController: UIViewController {
@IBOutlet weak var cliclableLable: UILabel!

override func viewDidLoad() {
    super.viewDidLoad()

    let tap = UITapGestureRecognizer(target: self, action: #selector(ViewController.tapFunction))
    cliclableLable.isUserInteractionEnabled = true
    cliclableLable.addGestureRecognizer(tap)
}

func tapFunction(sender:UITapGestureRecognizer) {
    print("tap working")
}

}

也不要忘記將您的標簽與代碼鏈接

使用back.userInteractionEnabled = true你做錯了 isUserInteractionEnabled。

問題在於您的標簽內存分配。 您已創建標簽的IBOutlet ,但未將其與 Storyboard/XIB 視圖控制器中的 Interface 連接。

轉到您的界面生成器:(故事板/XIB)視圖控制器 ▶ 選擇“連接檢查器”▶ 將標簽插座“返回”與標簽界面元素連接

在此處輸入圖片說明

如果您想使用故事板來實現,這里有一個簡單的方法。

在標簽上添加一個 UIButton 元素。 清除按鈕占位符,使按鈕約束等於標簽,即等高、等寬、頂、底。 在上圖中,標簽在擴展 wrt 文本時只有尾隨固定。 所以按鈕尾隨應該是尾隨標簽。 在下面的上下文中沒有對按鈕的前導約束。 最后創建了一個 IBAction 並編寫您的代碼來完成您的任務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM