2016-10-21 3 views
0

私は動的に入力された行を持つUITableViewを持っていますが、常に同じ(別の識別子を持つ)1つの特殊なセルを含むセクションもあります。UITableView内の強調表示ボタンがゆっくりと反応します

このセルには2つのボタンが追加されていますが、動作しますが、反応が悪いです。つまり、強調表示は約0.25秒後にのみ発生します。私は、次の少しカスタマイズされたボタンを使用してい

import UIKit 

class HighlightingButton: UIButton { 

    override var isHighlighted: Bool { 
     didSet { 
      if isHighlighted { 
       backgroundColor = UIColor.lightGray 
      } else { 
       backgroundColor = UIColor.white 
      } 
     } 
    } 

} 

それは、ユーザーが、彼らはボタンをタップすることが明らかなフィードバックを得ることが重要です。しかし、遅い強調表示では、これは満足できるものではありませんが、イベントはすばやく開始されるようです(出力を印刷することによって賞賛します)。

通常の表示では、このHighlightingButtonは期待どおりに機能し、ハイライト表示はすばやく点滅します。

この遅さにつながるUITableViewCellのイベント処理には何かがありますか?

更新

私は、問題を示しminimalistic example projectを作成しました。 GestureRecognizerはありませんが、この非常に顕著な遅延があります。

+0

問題がボタンについては、おそらくないとないのUITableViewCellクラスについて。私はあなたのボタンをセルで試しましたが、問題はありません。おそらく、あなたはその細胞や他の何かについて長いプレスのジェスチャーをしているのでしょうか? – alexburtnik

+0

問題を示す最小限のサンプルプロジェクトを作成しました。周囲の干渉もなく非常に平易な環境でも起こります。あなたが見て回っている場合は、私はそれを感謝します。 –

答えて

2

delaysContentTouchesプロパティを参照してくださいUIScrollView。 私はあなたの問題をtableviewのfalseに設定し、そのすべてをscrollviewサブビューに設定しました。

だから、あなただけのtableView IBOutletを追加し、このようなviewDidLoadメソッドをオーバーライドする必要があります。

override func viewDidLoad() { 
    super.viewDidLoad() 
    tableView.delaysContentTouches = false 
    for case let subview as UIScrollView in tableView.subviews { 
     subview.delaysContentTouches = false 
    } 
} 
+0

実際、この質問は重複しています:http://stackoverflow.com/q/22924817/1689376 – alexburtnik

+0

パーフェクト。どうもありがとうございました!重複して申し訳ありませんが、その質問は見つかりませんでした。 –

関連する問題