2013-11-21 44 views
10

我在兩個完全不同的情況下遇到了問題,這使得它非常奇怪。按鈕突出顯示狀態的延遲

  1. 情況:一個UIButton作爲另一個UIView的子視圖。
  2. 情況:UIBarButtonItem在UIToolBar中。

在這兩種情況下,只有在略微延遲約0.5-1秒後纔會突出顯示按鈕。一定要長時間突出顯示正常點擊時的視圖。他們都可以在模擬器上完美工作,但不能在真實的設備上工作(我有iOS 7.0.4的iPhone 5s)。

我試過
z位置設置到最高值的這些意見(MAXFLOAT),以確保沒有任何阻止的水龍頭。
顯式啓用突出顯示。

兩者顯然都不起作用。

編輯:仍然沒有解決。

+0

當您點擊這些按鈕時,您是否在做主線程上的服務器調用?這可能會導致高光延遲。如果是的話,你應該在後臺撥打這些電話。 – FabKremer

+0

突出顯示一個PNG格式的圖像? –

+0

我猜你在點按這些按鈕時正在做一些繁重的工作。圖像呈現正在主線程中工作。您可以檢查按鈕的IBAction功能。 – Joey

回答

0

我知道這是一個很長的時間,但我只是遇到了類似的問題:

  • UIButtonUINavigationController.view
  • 子視圖還有在模擬器上
  • 沒有延遲
  • 但是有延遲顯示設備上的高亮

我剛剛發現它只發生在我從Xcode運行應用程序時。如果我斷開設備並從它的圖標打開應用程序,一切正常。

我希望它有幫助。

2

如果按鈕靠近顯示器的底邊放置,可能會發生這種情況。與呈現控制中心(或iPhone X和iPad上的應用程序切換器)的系統邊緣手勢存在衝突。它會延遲觸摸按鈕,直到確定用戶沒有執行系統手勢。

如果您願意,可以告訴系統優先考慮系統手勢上的手勢。

override func preferredScreenEdgesDeferringSystemGestures() -> UIRectEdge { 
    return .bottom 
} 

但請注意,這將需要用戶滑動兩次來激活系統手勢。