2011-07-30 4 views
0

uiviewを使用してスライドビューを作成し、タッチを検出してページを移動しました。このスライドビューはほぼthisに似ていますが、私はそれをUITableViewのように動作させました。UIScrollViewのスライド

今私はこれをuiscrollviewsのuivewsに使用しています。問題は、「タッチイベントをスクロールビューまたはスライドビューにどのように配布するのか」です。私には論理がありました。基本的に、uiscrollviewsは垂直で、slideviewは水平です。

touchBeganを保持するためにhitTestを試しました。移動しました。スライドビューで終了しました。私がタッチの動きを水平にすると、私は縦にスライドビューを行い、uiscrollviewに配布します。しかし、私はどのようにイベントをuiscrollviewに配布するのか分かりません。

[scrollView touchesBegan:touches withEvent:event]を呼び出すことができません。私は、uiscrollviewは別の方法で作業すると思います。

答えて

0

あなたの答えに手掛かりが見つからない場合は、おそらく間違っています。

UIScrollViewは、touchesBegan、MovedおよびEndedを取得する独自の方法を使用します。あなたがUIScrollViewを動作させるのを止めるためにtouchesBeganをオーバーライドすれば、それは得られません。スクロールのスーパービューでhitTestを使用すると、UIScrollViewの前にタッチを取得できますが、タッチが行われている間はタッチ対象を変更することはできません。

結局のところ、これを解決する1つの方法が、灰色、3つの方法があります。

の1-シミュレートは、私はあなたが以下の知っているよ、これをテストしていない に触れます。イベントはUIWindowから来て、- (void)sendEvent:(UIEvent *)イベントによってサブビューに配信されます。私たちは目標がどのようにして保存されているのか分からず、これを変更することは全く問題になりません。しかしオーバーライド・スーパービューのhitTestのアイデアを使って、ユーザーがターゲットを変更するための 'WA'を作るために何をするのかを知ることができます。これを行うには、タッチ終了イベントをシミュレートします。想定されたターゲットがリセットされます。タッチのイベントを再度シミュレートし、今回はhittestにscrollviewを取得させてください。 シミュレートイベントhereの発生状況を確認できます。問題は、プライベートメソッドを使用しているためにアプリが拒否される可能性があるということです。

2 - これは、あなたが何をしたいかによって、最高または最悪である必要があり、独自のUIScrollViewの してください。私はそれが痛いと信じています。あなたが今やりたいことではありません。 「ネストUIScrollViewの」 へ

、3-サレンダーは、PDF、HQ、ドキュメントや書籍のスライドショーを作成するには、それが最善と痛みのない方法です。別の内部にUIScrollViewを配置し、スクロールの合意に達するようにします。 http://developer.apple.com/library/ios/#documentation/WindowsViews/Conceptual/UIScrollView_pg/NestedScrollViews/NestedScrollViews.html