4

为了向上和向下滚动,我需要调用两个方法,我使用了下面的方法。我正在使用滚动视图委托方法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];
    }
}
4

6 回答 6

2

采用 :

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

反而 :

- (void)scrollViewWillBeginDecelerating:(UIScrollView *)scrollView
于 2013-08-05T13:19:24.840 回答
2

使用以下方法:

 - (void)scrollViewDidScroll:(UIScrollView *)scrollView

 - (void)scrollViewDidEndScrollingAnimation:(UIScrollView *)scrollView

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

scrollview.delegate = self;
于 2013-10-05T07:21:04.707 回答
0

您可以尝试设置self.scrollView.delegate应充当滚动视图委托的对象。

于 2013-08-05T13:08:54.827 回答
0

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

于 2014-05-14T07:29:37.263 回答
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
        {

        }
    }
}

//MARK: - Use For Pegination -
func scrollViewDidScroll(_ scrollView: UIScrollView) {

    if (NetworkReachabilityManager()?.isReachable)! {
        if (((scrollView.contentOffset.y + scrollView.frame.size.height) >= scrollView.contentSize.height ) && !isLoadingList){
            self.isLoadingList = true
            currentPage += 1
            self.getList(page: currentPage)
        }
    }
}
于 2019-05-20T11:18:34.847 回答
-1

在我的情况下,我必须让我的视图同时成为 UITextViewDelegate 和 UIScrollViewDelegate 的代表。在我添加两者之前它不会触发该方法。可能是因为我在 EAGLView 而不是视图控制器中。

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

我还做了:

alertMessage.delegate = self;

因为 alertMessage 是我用作服务条款滚动条的 TextView。

于 2013-11-03T23:45:47.770 回答