2011-09-16 103 views
7

因此,這裏是抓住。我有兩個滾動視圖,其中一個填充了10個奇數子視圖,基本上就像撲克牌(自定義類視圖)。我希望能夠將這些視圖中的一些拖放到我擁有的空滾動條上。IOS在滾動視圖之間拖放

這兩個滾動視圖之間有許多不同的視圖。所以我想顯示視圖實際上是從一個視圖中拖動並放置在另一個滾動視圖中。我如何做到這一點。

我知道我必須使用觸摸,但如果任何人都可以掀起一個快速的例子,我會很好。 謝謝。

+0

是啊對不起,它確實是'iOS':) – SeriousSam

+0

沒有人有任何答案? – SeriousSam

+0

我很驚訝之前沒有人遇到過這樣的要求。 – SeriousSam

回答

7

它很容易。 ScrollView就像任何其他視圖,所以它基本上是將視圖從一個超級視圖拖放到另一個超級視圖。

層次結構如下: 你想拖,並從視圖刪除視圖V到一個視圖B.這意味着,當你開始d & d,V是A的子視圖,當你完成,V是B. A和B的子視圖必須有共同的上海華S.

步驟: 0 /你的觸摸識別器必須對S,不是在A或B

1 /用戶輕敲V.您將它從A中刪除並將它添加到同一位置上的S(UIView具有將位置從視圖轉換爲另一個視圖的方法)。
2 /用戶將V拖到B上。您在V中更改V的位置。
3 /用戶跌落V.如果足夠接近B,則將其插入B(轉換位置S-> B)併爲位置之間的差異設置動畫。如果它仍然靠近A,則將其動畫回到A.如果它位於A和B之間,則可以將它插入最近的一個,或者讓它停留在那裏並阻止所有其他用戶交互,直到用戶再次輕敲V並將其拖入A或B.

+0

謝謝Sulthan我已經實現了一段類似的代碼。只是忘了在這裏更新狀態:) 但是,如何阻止所有其他用戶交互,並啓用V? – SeriousSam

+0

只是一個問題,雖然..我使用了一堆這些小視圖,並希望在一次,我只與他們中的一個進行交互。這是多重拖動不應該發生。他們確實發生在IPAD中。我該如何解決這個問題? – SeriousSam

+0

可能性a /在開始拖動之前,請檢查現在是否有視圖已被拖動。 b /當您開始拖動時,請阻止所有其他組件。 – Sulthan