2016-03-25 25 views
1

Özel bir düğmem var ve statik bir hücreye eklendi. Her nasılsa düğmeye dokunduğumda, düğme normal bir normal görünüme eklendiğinde olduğu gibi hemen tepki vermiyor.Tablo görünümü hücrede görüntüle

Dokunulduğunda, bağlantıyı hemen kaydeder, ancak arka plan rengini değiştirmeden önce biraz gecikme olur.


UIButton benim sınıfta Aşağıdaki kod var rengini değiştirmek için: a sahip rengini değiştirerek hariç Bu düğme düğme tepki bir UITableViewCell ait alt sınıf ve eklenir

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    super.touchesBegan(touches, withEvent: event) 

    border.fillColor = .redColor() // border is a CAShapeLayer 
    print("began")     // This prints right when the button is clicked 
} 

gecikme. Bunu nasıl düzeltebilirim? (Jelly tarafından)

Cevap:
Jelly cevabı bana çok yardımcı oldu ve düğme biraz daha iyi tepki yaptı.

tableView.delaysContentTouches = false 
tableView.subviews.forEach { ($0 as? UIScrollView)?.delaysContentTouches = false } 
+0

Neden "UIButton: addTarget" yöntemini kullanmıyorsunuz? – garanda

cevap

5

: Sorun da sorunu araştırma kolaylaştırdı ve düğme normal bir görünümde olur ben tablo görünümünde hem delaysContentTouches devre dışı bırakmak zorunda ve subviews olduğu gibi sadece tepki vermesini sağlamaya öğrendim ne bilmek Masaüstünüzde delaysContentTouches = false'u ayarlayın.

+0

yerine çok teşekkürler! Tablo görünümünde varsayılan gecikme olduğunu bilmiyordum (3 dakikada kabul edebilirim). –

+0

Aslında, UITableView öğesinin devraldığı "UIScrollView" üzerindedir. – Jelly

+0

Cevabınız, biraz daha iyi çalıştı ama yine de biraz rahatsız oldu. Bu yüzden biraz daha fazla aradım, ki bu 'delaysContentTouches' hakkında olduğunu bilerek daha kolay oldu. Tablo görünümü alt görünümünde başka bir "UIScrollView" var ve bu kaydırma görünümünde de 'delaysContentTouches' devre dışı bırakmak zorunda kaldım. Sorumu ne yaptığımı düzenlerim. –

İlgili konular