2013-11-21 22 views
10

Bu sorunu tamamen farklı iki durumda aldım, bu da onu gerçekten tuhaf kılıyor.Düğmenin vurgulanan durumunun gecikmesi

  1. Durum: Başka bir UIView alt görünümü olarak bir Uibutton.
  2. Durum: UIBarButtonItem'in bir UIToolBar içinde.

Her iki durumda da, düğmeler yalnızca yaklaşık olarak - 5 saniye gibi kısa bir gecikmeden sonra vurgulanır. Normalde dokunulduğunda görünümü vurgulamak için kesinlikle uzun. İkisi de simülatörde mükemmel çalışır, ancak gerçek bir cihazda değil (iOS 7.0.4 ile iPhone 5'lerim var). Hiçbir şey sağlamak için en yüksek değerin bu görüşlerin (MAXFLOAT) e zPosition ayarlanması
çalıştığım şey

musluk engelliyor.
Vurgulamayı açık bir şekilde etkinleştirme.

Açıkça çalışmıyor.

Düzenleme: Hala çözülmedi.

+0

Bu düğmelere dokunurken ana iş parçacığı üzerinde sunucu aramaları gibi bir şey yapmıyor musunuz? Bu, vurguda gecikmeye neden olabilir. Bu çağrıları arka planda yapmalısın, evet. – FabKremer

+0

, png formatında bir resmi vurgulamaktadır? –

+0

Sanırım bu düğmelere dokunurken biraz iş yapıyorsunuz. Görüntü işleme ana iş parçacığı üzerinde çalışıyor. Düğmeler için IBAction işlevini kontrol edebilirsiniz. – Joey

cevap

0

UIButtons UIScrollView içinde mi? Eğer öyleyse, gecikme oradadır, böylece kaydırma görüşü dokunmanın kaydırma için olup olmadığını veya alt ekrana aktarılmasının gerekip gerekmediğini belirleyebilir.

Ben çok uzun zaman oldu biliyorum UIButton touch is delayed when in UIScrollView

+0

Hayır. Ayrıca: Bunun tam olarak farkında olmadığından emin oldum. – Leandros

0

Ayrıca bakınız, ama sadece benzer bir sorunla karşı karşıya:

  • Benim UIButton simülatörü
  • üzerinde gecikme yok UINavigationController.view
  • bir Subview olduğunu
  • Ancak, aygıtta vurgulamayı göstermek için bir gecikme var

Sadece uygulamayı Xcode'dan çalıştırdığımda gerçekleştiğini öğrendim. Cihazın bağlantısını kesip uygulamayı kendi ikonundan açarsam her şey yolunda gider.

Umarım yardımcı olur.

2

Düğmeler ekranın alt kenarına yakın yerleştirilirse bu durum oluşabilir. Kontrol Merkezi'ni (veya iPhone X ve iPad'de Uygulama Değiştirici) sunmak için sistem kenarı hareketiyle bir çakışma var. Kullanıcıların bir sistem hareketi yapmadığı belirlendiğinde, düğmeleriniz için dokunuşları geciktirir.

İsterseniz, sistem hareketlerinden ötürü hareketlerinize öncelik vermesini söyleyebilirsiniz.

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

bu sistem jest etkinleştirmek için iki kez kullanıcı tokatlamak gerektireceğini Ancak dikkat etmeyin.