4

UIScrollViewで現在スクロールされているページのインデックスを知りたい。私は多くのサイトを検索しましたが、助けにはなりません。どんな提案でも大歓迎です。

4

4 に答える 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 に答える