簡體   English   中英

無法從情節提要中的UITapGestureRecognizer拖動IBAction

[英]Can't drag IBAction from UITapGestureRecognizer in Storyboard

我正在嘗試從UITapGestureRecognizer拖動IBAction,該IBAction放置在自定義tableview單元中的UIImageView上。

但是,它不允許我將操作從情節提要拖動到自定義tableview單元的子類中

單元的類已在身份檢查器中正確設置為正確的文件。 並且在imageview上啟用了用戶交互。

因此,我嘗試鍵入IBAction並將其從文件連接到情節提要,這會出現此錯誤:

連接IBAction后發生錯誤

這很令人困惑,因為我能夠將IBAction從UIButtons和其他視圖對象中拖出。 只是不是這個UITapGestureRecognizer。 我最近將Xcode更新為7.2.1

這是文檔概述中的視圖層次結構:

自定義單元文檔大綱

這是輕擊手勢的連接:

imageview的連接

以及imageview的連接:

在此處輸入圖片說明

現在,在許多Xcode版本更改(當前為8.1,很快為3.0)之后,我總是在代碼中添加了輕擊手勢識別器對象,而不是在Storyboard上工作。 當嘗試與Story Board上的Tap Gesture Regnizer一起使用時,我重新討論了類似的問題。 即使我正在使用添加了Tap Gesture Recognizer對象(將Tap Gesture Recognizer對象拖放到您的圖像視圖中)的簡單UIImageView上,我也進入了此頁面。 在這里,我列出了一個循序漸進的小教程,希望它對像我這樣最終進入此頁面的其他人有用。

1)在繼續之前,請確保您的圖像視圖在檢查器中具有這些連接

在此處輸入圖片說明

2)在您的快速代碼中添加了@IBAction響應功能。

 // MARK: Actions
  @IBAction func tapGestureAction (_ sender: UITapGestureRecognizer){
    print("Tap on Flower Image View")
  }

3)在Main.storyboard上,單擊“文檔大綱”中的“拍打手勢”對象或視圖控制器場景中的圖標集合。
在此處輸入圖片說明

要么

在此處輸入圖片說明

4)轉到“連接”檢查器,然后按Ctrl鍵並單擊“已發送動作”中“選擇器”旁邊的加號,並將其拖動以查看場景的控制器圖標。 釋放鼠標后,您將看到在步驟2)中定義的函數名稱。 您可以選擇並且應該建立連接。

在此處輸入圖片說明

在此處輸入圖片說明

5)如果成功建立連接,則“ Tap Gesture Recognizer”對象的“連接檢查器”應如下所示

在此處輸入圖片說明

正如beyowulf在上述評論中指出的那樣,iOS 9中發生了變化,從而改變了UIGestureRecognizers處理重復內容的方式。

這很不幸,因為我發現在程序化實現上使用情節提要是最佳實踐,但是如果您要弄清楚這是以下代碼,請執行以下操作:

在您的自定義單元格類中:

override func awakeFromNib() {
    super.awakeFromNib()

    let imageViewDoubleTap = UITapGestureRecognizer(
         target: self,
         action:#selector(ThisClass.userSwiped)
         )
    imageViewDoubleTap.numberOfTapsRequired = 2
    self.photoImageView.addGestureRecognizer(imageViewDoubleTap)
}

然后使用與您提供的action參數相同的名稱創建一個func,並在其中實現代碼。

暫無
暫無

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

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