UIScrollView委托方法没有正确调用

时间:2013-08-05 13:02:17

标签: iphone ios uicollectionview uiscrollviewdelegate

为了向上和向下滚动,我需要调用两种方法,因为我使用了以下方法。我正在使用 scrollview委托方法作为UICollection,因为它是子视图UIScrollView。这是我编写的代码,但滚动不容易移动,结果在某些时候也不准确。?

- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView{
    CGPoint mScrollPosition = [scrollView.panGestureRecognizer velocityInView:mCollectionView];


    if (mScrollPosition.y > 0.0f){
        NSLog(@"going down");
       //Action One
        mYearHeaderTitle--;
        [self.mCollectionView reloadData];

    }
    else if (mScrollPosition.y < 0.0f){
        NSLog(@"going up");
      //Action two
        mYearHeaderTitle++;
        [self.mCollectionView reloadData];
    }
}

6 个答案:

答案 0 :(得分:2)

使用:

  1. - (void)scrollViewDidScroll:(UIScrollView *)scrollView
  2. - (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView
  3. 相反:

    - (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
    

答案 1 :(得分:2)

使用以下方法:

 - (void)scrollViewDidScroll:(UIScrollView *)scrollView

 - (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView

通过右键单击滚动视图将委托链接到滚动视图,并将委托方法连接到文件所有者  (或)

scrollview.delegate = self;

答案 2 :(得分:0)

您可以尝试将self.scrollView.delegate设置为应作为scrollView委托的对象。

答案 3 :(得分:0)

将视图控制器设置为<UIScrollViewDelegate>

答案 4 :(得分:0)

**使用此方法:**

  //MARK: - UIScrollview Delegate -
func scrollViewDidEndDecelerating(_ scrollView: UIScrollView) {
    if scrollView.contentOffset.y > 0
    {
        if (tableView.contentSize.height - (tableView.contentOffset.y + scrollView.bounds.size.height)) == 0
        {
            self.count += 1
            let strCount = String(self.count)
            let params:[String:String] = ["search":SAFESTRING(str: self.strSearchVal!),"page":strCount,"length":"25"]
            let url = API_USER.BASE_URL + API_USER.SEARCH_LISTING
            self.callGetEventlist(url: url, params: params)
        }
        else
        {

        }
    }
}

答案 5 :(得分:-1)

在我的情况下,我必须让我的视图成为UITextViewDelegate和UIScrollViewDelegate的委托。在我添加两者之前,它不会触发该方法。可能是因为我在EAGLView而不是viewcontroller。

@interface EAGLView : UIView <UITextFieldDelegate, SDWebImageManagerDelegate, UITextViewDelegate, UIScrollViewDelegate>

我也做了:

alertMessage.delegate = self;

由于alertMessage是我的TextView,我将其用作服务条款滚动条。