2011-01-31 106 views
3

我有一個iPhone/iOS應用程序,其中存在UIButtons(純文本標籤;沒有使用自定義圖形),當按下時將新UIViewController UINavigationController堆棧。當選擇器操作推送新的UIViewController時,UIButton不顯示突出顯示

這些按鈕間接顯示在UIScrollView;它們都直接在另一個在運行時構造的UIView上,然後將這個UIView添加到UIScrollView中。

問題:當用戶按下這些按鈕中的一個,在大多數情況下,該按鈕不會顯示爲高亮,雖然正確採取動作(適當的視圖控制器被壓入堆棧)。

如果我將按鍵檢測設置爲使用TouchUpInside而不是TouchDown,那麼如果用戶按住按鈕一小會兒(半秒鐘,也許?),按鈕會顯示爲突出顯示,但使用TouchDown很少突出顯示,無論如何,即使用戶只是輕按按鈕,我也希望突出顯示。

我已經研究過這個網站和其他人的答案,並嘗試了各種方法,我發現建議用於解決類似問題..最可能的答案似乎是設置UIScrollView的「delaysContentTouches」屬性爲NO,但這在我的應用程序中沒有發現明顯的差異。事實上,我沒有找到滿意的答案來回答這個問題。

任何想法?...

回答

13

是,延遲是由UIScrollView中試圖檢測滾動姿態造成的,是的,你可以通過設置delaysContentTouches爲NO解決它。此外,你應該總是使用UIControlEventTouchUpInside而不是UIControlEventTouchDown與UIButton的,因爲這使用戶可以通過拖動手指從按鈕越遠「改變主意」。

+0

感謝Costique..thats解決了我的問題.. :) – 2013-04-10 06:11:32