0

アプリの月と年の値を取得するために、無限の水平スクロールビューを開発しています。無限スクロールの方法を見つけましたが、スクロールがアニメーション化またはドラッグを停止したときにラベルの値を取得する方法がわかりません。 スクロール終了時にマーチラベルの値を取得したい

  1. スクロールがアニメーション化/ドラッグを終了したときに上記のコンポーネントを使用して月の値を取得する方法はありますか、それともコンポーネントを変更する必要がありますか?

前もって感謝します。

4

3 に答える 3

2

解決策を得た

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{

//some logics go here..........

    CGPoint point = scrollView.center; 

        for (UIView *myView in scrollView.subviews)
        {

            if(CGPointEqualToPoint(myView.center, point) == YES )
            {
                   if([myView isKindOfClass:[UILabel class]]) 
                  {
                    UILabel *label = (UILabel *)myView;
                    NSLog(@"Month is %@", label.text);
                  }
            }
        }
}

上記のコードは、スクロールビューの中央にラベルを返します。

于 2012-11-06T05:29:28.140 に答える
0

それはあなたのscrollViewの実装に依存します、一般的にあなたは中心点でサブビューを得ることができます

- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event

詳細については、ドキュメントを確認してください。理想的には、scrollViewはどのビューが中央に移動されたかを認識し、いくつかのカスタムメソッドによってそれを返すことができます。

于 2012-11-05T05:55:42.707 に答える
0

メインビューからサブビューを取得するためのコードを次に示します。

-スクロールデリゲートscrolldidEndメソッド:

UIView v = nil;
for(v in yourscroll.subviews){
 if ([v isKindOfClass:UILabel]){
      UILabel * lbl = v(UILabel *);
     if (lbl.tag == yourSelectedLabelTag){
       NSLog(lbl.text);
             }
      }
}

注:scrollviewでラベルビューを使用してタグを作成する必要があります。

于 2012-11-06T03:25:17.210 に答える