0

私のiPhoneアプリケーションでは、2つのスクロールビューを使用したいのですが、中にいくつかの画像があります。さて、私の質問は、最初のスクロールビューを垂直方向にスクロールするときにその内容を調べたいのですが、水平方向にスクロールするときに2番目のスクロールビューに移動したいということです。はっきりと説明できればと思います。

さて、私は最初に3つのスクロールビューを使用しようとしましたが、そのうちの1つは背景にあり、他は最初のスクロールビューにありますが、一度に制御できるのは背景のスクロールビューなどです。

最初のものを水平に、他のものを垂直に制御する方法はありますか。私の英語で申し訳ありませんが、それが理にかなっていることを願っています。

4

3 に答える 3

1

両方のデリゲートUIScrollViewを設定することで両方を区別できます次に、そのメソッドで 比較します。要件に応じて方法を変更できます-if statementUIScrollViewscrollViewdelegatedelegate

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate 
{
    if(firstScrollView == scrollView)
    {
         //Do your work for firstScrollView
    }

    if(secondScrollView == scrollView)
    {
         //Do your work for secondScrollView
    }

}
于 2012-08-10T15:16:24.487 に答える
1

2つのお勧めがあります。

1)スクロールビューは水平方向と垂直方向にスクロールできるため、コンテンツが垂直方向にあり、コンテンツが水平方向にある場合は、2 つ必要ありません。1つ使用できます。

2) 何らかの理由で本当に 2 が必要な場合は、サブクラス化によって水平方向のスワイプを検出し、UIScrollView別のスワイプに切り替えることができます。

UIScrollViewはその contentSize を超える任意の方向にスクロールすることに注意してください。したがって、最初のケース(1)で行う必要があるのは、スクロールビュー2(水平スクロールビュー)内にあるビューを取得し、そのビューをスクロールビュービューポートの左または右外側のスクロールビューに配置することです。スクロールすると、そのビューが表示され、もちろん垂直方向にスクロールすることもできます。

方法 2 を使用する場合 - スクロール ビュー 1 のコンテンツ サイズがコンテンツ サイズよりも少なくとも数ピクセル広いことを確認してください。これにより、水平方向のスワイプを検出し、coe を呼び出して他のスクロール ビューに切り替えることができます。UIScrollviewスワイプを取得するためにサブクラス化しないと、おそらくイベントを取得できません。したがって、そのビューの幅を少し増やしてから、スクロール ビューの左端よりも小さい値を探し、他のスクロール ビューに切り替えます。逆に同じことを行って、前のスクロールビューに戻ることができます。

これがお役に立てば幸いです - 申し訳ありませんが、現時点ではコードはありませんが、これを行う iOS および OSX で動作するコードがあります。

于 2012-08-10T12:31:13.267 に答える
0

デリゲート メソッドで実行してみてください

- (void)scrollViewDidEndDragging:(UIScrollView *)scrollView willDecelerate:(BOOL)decelerate

-(void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView

のようないくつかの条件を設定します

if(myScroll1)
{
 //scroll vatical.
}
if(myScroll2)
{
 //scroll horizontal.
}

これは完全なコードではありません これはアイデアです 頑張ってください..

于 2012-08-10T11:35:12.273 に答える