我正在开发一个无限水平滚动视图来获取我的应用程序的月份和年份值。我找到了一种无限滚动的方法,但我不知道在滚动停止动画或拖动时如何获取标签的值。
- 当滚动结束动画/拖动或者我需要更改我的组件时,有什么方法可以使用我上面的组件获取月份值?
提前致谢。
我正在开发一个无限水平滚动视图来获取我的应用程序的月份和年份值。我找到了一种无限滚动的方法,但我不知道在滚动停止动画或拖动时如何获取标签的值。
提前致谢。
有解决办法
- (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);
}
}
}
}
上面的代码将返回滚动视图中心的标签。
这是一些从主视图中检索子视图的代码。
- 在您的滚动委托 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 实现,通常您可以在中心点获取子视图
- (UIView *)hitTest:(CGPoint)point withEvent:(UIEvent *)event
检查文档以获取详细信息。理想情况下,您的 scrollView 知道哪个视图被移动到中心,并且能够通过您的一些自定义方法返回它。