Iphone 当UIScrollview停止滚动动画时获取标签的值

Iphone 当UIScrollview停止滚动动画时获取标签的值,iphone,objective-c,ios,ipad,ios5,Iphone,Objective C,Ios,Ipad,Ios5,我正在开发一个无限水平滚动视图,以获取我的应用程序的月份和年份值。我找到了无限滚动的方法,但我不知道当滚动停止动画或拖动时如何获得标签的值。 当滚动结束动画/拖动或我需要更改我的组件时,是否有任何方法可以使用我的上述组件获取月份值 提前感谢。这取决于您的scrollView实现,通常您可以使用 - (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event 详细信息请查看。理想情况下,您的scrollView知道哪个视图被移动到中心

我正在开发一个无限水平滚动视图,以获取我的应用程序的月份和年份值。我找到了无限滚动的方法,但我不知道当滚动停止动画或拖动时如何获得标签的值。

  • 当滚动结束动画/拖动或我需要更改我的组件时,是否有任何方法可以使用我的上述组件获取月份值

  • 提前感谢。

    这取决于您的scrollView实现,通常您可以使用

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

    详细信息请查看。理想情况下,您的scrollView知道哪个视图被移动到中心,并且可以通过一些自定义方法返回它。

    下面是一些从主视图检索子视图的代码

    -在您的scroll委托ScrollDiEnd方法中:

    UIView v = nil;
    for(v in yourscroll.subviews){
     if ([v isKindOfClass:UILabel]){
          UILabel * lbl = v(UILabel *);
         if (lbl.tag == yourSelectedLabelTag){
           NSLog(lbl.text);
                 }
          }
    }
    
    注意:您必须使用scrollview中的标签视图创建标签。

    找到解决方案了吗

    - (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);
                      }
                }
            }
    }
    

    上述代码将返回滚动视图中心的标签

    嘿,我的问题是,当滚动结束时,如何获取“yourSelectedLabelTag”……如果有另一个子视图具有相同的中心点,此代码将无法工作,并且可能在NSLog语句中崩溃。