2010-01-07 66 views
1

我即將開始一個需要特定功能的新iPhone應用程序,但我不確定它是否可行。我願意研究,但首先我只想知道我是否應該至少考慮它。用iPhone上的Cocoa拖動和掃描

我還沒有在應用中看到過這個(這是我的主要關注點,儘管我沒有看到太多的應用,因爲我沒有iPhone),但是一個例子就是iPhone快捷鍵面板:您可以保留一個應用程序,然後將其拖動到另一個面板,然後拖動它進行清理。但是,這是核心應用程序,是否有可能在正常的應用程序內再現類似的東西?

我只需要確定在開始挖掘之前就可以完成它了,我不需要代碼示例或任何其他東西,但是如果您有一些您認爲有用的確切資源,那將不勝感激。

謝謝!

回答

1

是的。如果你在UIScrollView中有自定義的UIView子類實例,你的視圖控制器只需要設置UIScrollView來延遲內容觸摸並且不允許它取消觸摸事件。

[scrollView setCanCancelContentTouches:NO]; 
[scrollView setDelaysContentTouches:YES]; 

當用戶點擊,並在自定義視圖持有,該事件進入到自定義視圖,它可以處理觸摸事件來左右拖動一個項目,但如果用戶快速揮筆,它滾動視圖。

0

您所指的「面板」視圖似乎是UIPageControl視圖 - 儘管也許蘋果用於iPhone主頁的此視圖的具體化身可能是自定義的。

通用的UIView實例的實例,您可能會觸摸並拖動將接收觸摸事件。通過重寫視圖中的方法,可以處理這些事件並將其傳遞給頁面控件,以便告訴它在頁面之間「掃掠」。

如果我想做你在問什麼,那就是我可能會接近它的方法。無論如何,這對我來說似乎是可行的。

0

開始與此:Swip from one view to the next view

嘗試使用UIButton追蹤因爲按鈕的狀態變爲「突出」的時間。您可能需要這樣做是爲了跟蹤拖動左右移動鍵:看到

Observing pinch multi-touch gestures in a UITableView

檢查按鈕啓動屏幕的一側重疊而被拖動。如果從按鈕首次開始重疊邊緣起經過了一定的時間,然後操作UIScrollView,以便它切換到屏幕相應側的下一頁

您可能需要使用NSTimer來跟蹤長按鈕,等等。

在任何情況下,沒有理由爲什麼這不起作用。

如果UIButton不起作用,那麼也許嘗試UIControl的自定義子類(它跟蹤相同的觸摸動作等)。如果這不起作用,那麼使用窗口事件攔截事件來追蹤所有內容。