2017-02-05 10 views
2

画面全体をカバーするスクロールビューが必要です。しかし、私はスクロールビューの一部からスクロールを検出することだけが可能かどうかを知りたがっています。たとえば、画面の上半分がスクロールを検出するはずですが、下半分はスクロールしないでください。アルファを0に変更してスクロールビューがもうスクロールしない場合は、スクロールビューの一部のアルファ値を変更することができますか?それも可能ですか?任意の思考やアイデア?Scrollviewは特定の領域からのスクロールのみを検出しますか?

+1

簡単な解決策はのViewControllerにテーブルビューを追加し、 – Mentos

答えて

1

UIScrollViewからサブクラス化し、メソッドtouchesShouldBeginをオーバーライドすることができます。 あなたはどの点に触れてそれを許可するかを確認する必要があります。

class ScrollView: UIScrollView { 

    override func touchesShouldBegin(_ touches: Set<UITouch>, with event: UIEvent?, in view: UIView) -> Bool { 

     if (touches.first?.location(in: self).y)! > self.bounds.height/2 { 
      // In bottom part 
      return true 
     } 

     // In top part 
     return false 
    } 
} 
+1

この時のタッチを許可したくないテーブルビューの一部の上にクリアな視界を追加することであることは_私はこれまでtouchesShouldBegin(funcを持っているものです接触:、 イベントの場合:UIEvent ?, ビュー:UIView) - > Bool {}どのようにif文を記述してタッチポイントがどこにあるかを確認します – user6520705

関連する問題