我想知道UIScrollView中当前滚动页面的索引。我搜索了许多网站没有帮助。 欢迎任何建议。
答案 0 :(得分:7)
试试这个
//Horizontal
NSInteger pagenumber = scrollView.contentOffset.x / scrollView.bounds.size.width;
//Vertical
NSInteger pagenumber = scrollView.contentOffset.y / scrollView.bounds.size.height;
答案 1 :(得分:5)
对于那些需要代码(swift)的人,UIScrollViewDelegate提供了方法,这使用了上面的水平示例
func scrollViewDidEndDecelerating(scrollView: UIScrollView) {
print("END Scrolling \(scrollView.contentOffset.x / scrollView.bounds.size.width)")
index = Int(scrollView.contentOffset.x / scrollView.bounds.size.width)
}
答案 2 :(得分:0)
使用contentOffset
属性,该属性返回CGSize
,该UIScrollView
是{{1}}中内容的偏移量。
答案 3 :(得分:0)
借助一些数学计算,您可以获得页面的索引号 我发送的代码仅供参考。我做完了。
-(void)KinarafindingSelectedCategory:(UIScrollView*)scrollView{
for (UIView *v in scrollView.subviews)
{
if ([v isKindOfClass:[UIButton class]])
{
UIButton *btn=(UIButton*)v;
float x1=scrollView.contentOffset.x+(([UIScreen mainScreen].bounds.size.width/2)-(btn.frame.size.width/2));
float x2=scrollView.contentOffset.x+(([UIScreen mainScreen].bounds.size.width/2)+(btn.frame.size.width/2));
float BtnMidPoint=btn.frame.origin.x+(btn.frame.size.width/2);
if(BtnMidPoint >= x1 && BtnMidPoint <= x2)
{
if(scrollView==KinaraCategory)
{
KinaraSelectedCategoryName=btn.titleLabel.text;
KinaraSelectedCategoryID=btn.tag;
NSLog(@"Selected Category Tag : %d",KinaraSelectedCategoryID);
NSLog(@"Selected Category Name : %@",KinaraSelectedCategoryName);
}
else if(scrollView==KinaraSubCategory)
{
KinaraSelectedSubCategoryID=btn.tag;
KinaraSelectedSubCategoryName=btn.titleLabel.text;
NSLog(@"Selected SubCategory Tag : %d",KinaraSelectedSubCategoryID);
NSLog(@"Selected SubCategory Name : %@",KinaraSelectedSubCategoryName);
}
break;
}
}
}
}