2013-02-18 10 views
5

iOS 6では、私はUITableViewを持っています。一番上のセルには、カスタムスライダをドラッグして対話できるカスタムコントロールがいくつかあります(example参照)。原因、ドラッグする必要があるが、ヒットは、多くの場合、セルの背景にあると思われるよう、彼らがつかむことが難しいことができいくつかのセルでUITableViewのスクロールを無効にする

enter image description here

コントロールはスライダー指標のタグやドラッグを必要とする...スクリーンショットを参照してください。テーブルをドラッグしてキックインします。

タップイベントがそれらのコントロールのどこかで発生した場合、テーブルのデフォルトスクロールを無効にしたいと思います。二つのオプション私はオフに考えることができます:

  1. コントロールは、彼らは透明な背景を持っている部分で、特に、より広い領域でのイベントを処理していることを確認し、トップセル内の任意のイベントのためにドラッグ
  2. 無効テーブル

これらのいずれかを達成するための提案はありますか?

ありがとうございます!

+0

これを試してください:tableView.scrollEnabled = NO; – Vinodh

+1

私の問題は、タッチイベントが最初の行で発生する場合を除いて、テーブルをドラッグ可能かつスクロール可能にしたいということです(この場合、イベントはスライダのみに移動します) – mkrus

答えて

0

私はUIControlのサブクラスに使用し、これらの関数をオーバーライド:

override func continueTracking(_ touch: UITouch, with event: UIEvent?) -> Bool { } 

override func endTracking(_ touch: UITouch?, with event: UIEvent?) {} 

override func beginTracking(_ touch: UITouch, with event: UIEvent?) -> Bool {} 

それはこのサークルスライダースタイルの私のために正常に動作します。

上記の方法でスクロール可能なtableViewのオン/オフを切り替えることができます。

tableView.isScrollEnabled = false/ture 
関連する問題