1

当用户从 UITableView 向上滚动时,我想编写一个动作,我该怎么做?

4

3 回答 3

6

试试这个

第1步:

   yourUITableView.delegate = self;

第2步:

   CGFloat yOffset = 0.0;

第 3 步:

 -(void)scrollViewDidScroll:(UIScrollView *)scrollView
        {
            if (scrollView.contentOffset.y < yOffset) {

                // scrolls down.
                yOffset = scrollView.contentOffset.y;
            }
            else
            {
                // scrolls up.
                yOffset = scrollView.contentOffset.y;

                // Your Action goes here...
            }

        }
于 2013-03-06T04:53:51.420 回答
0

我能想到几种方法可以帮助您解决这个问题。这一次,如果您不需要精确识别向上滑动,您可以使用 UITableView 行为来执行此操作。

每次出现新行时,都会调用tableView:cellForRowAtIndexPath:选择器。您可以使用此方法通过比较先前插入的行 (indexPath.row) 来了解用户滚动的方向,以查看新的是否较低。如果是,则用户正在向上滚动。

为了更精确,您可以尝试使用Swipe Gesture Recognizer。我个人从未使用过它,但我无法想象它很难使用。

于 2013-03-05T15:37:36.523 回答
0

UITableView继承自,因此您可以为您的 tableViewUIScrollView使用委托:http: //developer.apple.com/library/ios/#documentation/uikit/reference/UIScrollViewDelegate_Protocol/Reference/UIScrollViewDelegate.html#//apple_ref/occ/intf /UIScrollViewDelegateUIScrollView

tableView.delegate = self;

..

- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
{
   NSLog(@"Content offset: %f", scrollView.contentOffset.y);

   // do something like
   // if firstOffset < secondOffset {
   // [self yourAction];
   //}
}
于 2013-03-05T15:37:49.570 回答