UIScrollViewで現在スクロールされているページのインデックスを知りたい。私は多くのサイトを検索しましたが、助けにはなりません。どんな提案でも大歓迎です。
12421 次
4 に答える
7
これを試して
//Horizontal
NSInteger pagenumber = scrollView.contentOffset.x / scrollView.bounds.size.width;
//Vertical
NSInteger pagenumber = scrollView.contentOffset.y / scrollView.bounds.size.height;
于 2012-10-05T13:58:53.760 に答える
0
Use the contentOffset
property, which returns a CGSize
that is the offset of the content in the UIScrollView
.
于 2012-10-05T10:50:21.470 に答える
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;
}
}
}
}
于 2012-10-05T11:00:30.297 に答える