2011-01-06 53 views
2

HEJ人,重新排列子視圖中的UIScrollView例如App-圖標在主屏幕

我有一個問題想你:我得到了在含有許多子視圖我的申請一個UIScrollView(的UIView直接子類)。現在我想給用戶在scrollview中重新排列這些子視圖的可能性。無論如何,讓它看起來像我們都可以改變主屏幕上的圖標(自動重新排列)?我非常感謝任何幫助! 在此先感謝, 蒂姆

回答

3

除非你使用一些自定義工具包(我不知道有一個自定義工具包或API來實現這一點),我認爲你應該從頭開始創建它們。

我也創造了非常類似的東西,你說。在UIScrollView實例中,我添加了小的子視圖,並且只能通過拖動來垂直排列它們。另外,我可以將任何子視圖帶到UIScrollView實例的外部。 (有點棘手)

有兩種方法來構建它們。 (小的子視圖==圖標)

1a)在包含許多小子視圖的UIScrollView的主子視圖中實現觸摸事件(gestureRecognizer或touchesBegan,Moved,Ended,Canceled)。

1b)在每個小子視圖中實現觸摸事件。

我選擇了1b因爲我想不僅在UIScrollView中使用小的子視圖,而且在我的程序中的任何地方。但對於1b來說,在這些小視圖中防止多點觸控有點困難。此外,我認爲,在1b中,小型子視圖中的觸摸事件從應用程序的複雜響應鏈中更加自由。

2)創建一個包含小子視圖列表的NSMutableArray實例。

3)實現一個函數,通過枚舉將一個NSMutableArray實例顯示在UIScrollView實例的主視圖上。

4)實現枚舉NSMutableArray實例並檢查小子視圖的當前觸摸位置是否位於NSMutableArray的任何小子視圖的框架中的函數。 (或者檢查當前移動的小子視圖的框架是否在任何小子視圖的框架內)可以使用CGGeomtery中的CGRectContainsPoint或CGRectContainsRect函數。如果是的話,那麼你可以改變NSMutableArray的每個小子視圖的框架。如果用戶在任何小子視圖的框架之外釋放手指,則什麼也不做。

只需使用基於塊的動畫方法(iOS4及更高版本)或開始/提交動畫方法,就可以像創建主屏幕一樣創建它們。

+0

我也需要達到同樣的functionality.Can請你分享一些代碼,如果可能的闡述你的想法。 – Gypsa 2012-07-27 05:54:19