13

ユーザーがUITextViewの一番下までスクロールした場合にのみ「続行」ボタンが有効になる利用規約ページのフォームを実装しようとしています。これまでのところ、クラスを UIScrollView デリゲートとして設定し、以下のメソッドを実装しました。

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView
{
    NSLog(@"Checking if at bottom of UITextView");
    CGPoint bottomOffset = CGPointMake(0,self.warningTextView.frame.size.height);
    //if ([[self.warningTextView contentOffset] isEqualTO:bottomOffset])
    {
    }    
}

UITextView が一番下にあるかどうかを確認する方法がわからないため、if ステートメントにコメントしました。

4

3 に答える 3

21

UITextView は UIScrollView サブクラスです。したがって、使用している UIScrollView デリゲート メソッドは、UITextView を使用するときにも使用できます。

を使用する代わりに、スクロールビューが減速せずにスクロールを停止する可能性があるため、をscrollViewDidEndDecelerating使用する必要があります。scrollViewDidScroll

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if (scrollView.contentOffset.y >= scrollView.contentSize.height - scrollView.frame.size.height)
    {
        NSLog(@"at bottom");
    }
}
于 2012-12-20T10:30:58.263 に答える
0

これで解決するはずです。できます。私はそれを使用しています。

- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView 
{
    float bottomEdge = scrollView.contentOffset.y + scrollView.frame.size.height;
    if (bottomEdge >= scrollView.contentSize.height) 
    {
        // we are at the end
    }
}
于 2012-12-20T10:31:13.167 に答える