2016-11-25 60 views
-1

我正在研究一個音樂鍵盤組件的應用程序。如何通過滑動按鈕來觸發按鈕?

我需要2種「發送事件」來觸發鍵盤按鍵(UIButtons)。

1)「向下觸摸」觸發按鈕他們的方式予它需要

2)第二方式我需要按鈕被觸發是通過滑動到一個按鈕,從另一個按鈕/鍵的側當它從左側或右側滑落時,它好像是「被擊倒」的。

我該如何做到這一點?

+0

@matt好的。這是一個很好的解釋。不幸的是,這意味着我將從頭開始並創建一些可以管理我需要的按鈕操作的「超級視圖」......感謝讓我知道我試圖實現的目標對於基本UIButton而言是不可能的,「發送事件「在IB。 – PlateReverb

+0

@matt你知道關於如何在Swift中實現這樣的任何教程嗎? – PlateReverb

+0

@matt我只知道這在廣泛層面上有意義。我不知道如何實現這一點。我花了幾個月時間在我的應用程序的當前鍵盤設置上(這是一個在滾動視圖中的8x8網格中具有方形鍵的等距鍵盤)。從頭開始用8x16子視圖自定義超級視圖重新編碼這個想法會增加更多的問題,我將需要解決...你確定沒有簡單的方法來使用UIButton獲得這個功能嗎?否則,你可以給我一個鏈接到一個起點,瞭解如何使用自定義的超級視圖和子視圖來做到這一點?謝謝你的幫助! – PlateReverb

回答

1

你不能使用按鈕的內置控制事件來做到這一點,原因很簡單,你根本沒有得到一個按鈕中的事件,除非觸摸最初是該按鈕(如我在這裏解釋一下:https://stackoverflow.com/a/40414929/341994)。

不過,這聽起來並不難。最簡單的方法可能是將觸摸響應(例如手勢識別器)放入所有按鈕的常見超級視圖中。超級視圖然後可以跟蹤手勢。並且可以很容易地找出在任何特定時刻觸摸當前處於哪個按鈕。所以它可以管理整個交互。它甚至可以將消息發送到按鈕,告訴他們何時突出顯示和不亮。 (如果你不打算使用按鈕觸摸處理任何東西,你甚至可能想放棄這些按鈕的想法;它們可能只是視圖或自定義控件,看起來像按鈕。)