2

如果 UIScrollView 滚动超过一定量,我将如何禁用 UIButton?

这就是我一直在尝试的。也许是错误的 scrollViewDidScroll: 委托方法。

- (void)scrollViewDidScroll:(UIScrollView *)scrollView {

    if (_scrollView.contentOffset.y >= 100)       {

        mapLaunchButton.enabled = NO;
    }
}

谢谢你的帮助

4

3 回答 3

1

简单的!不过,您需要创建一个变量来存储滚动视图的起始位置。它应该是一个CGPoint。将其设置为滚动视图的内容偏移量scrollViewWillBeginDragging:(滚动视图开始移动的位置),然后在 scrollViewDidScroll 中进行比较,类似于您之前的操作方式。

- (void)scrollViewWillBeginDragging:(UIScrollView *)scrollView
{
    startingPoint = scrollView.contentOffset;
}

- (void)scrollViewDidScroll:(UIScrollView *)scrollView
{
    if (scrollView.contentOffset.y >= startingPoint.y + 100.0f) {
        mapLaunchButton.enabled = NO;
    }
}

请记住,您可能需要根据滚动视图的起始位置以及您希望监视更改的方向稍微修改我提供的值。

于 2013-08-30T14:59:32.717 回答
0
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {

    if (_scrollView.contentOffset.y >= 100)       {

      mapLaunchButton.enabled = NO;
    }

    else  {

      mapLaunchButton.enabled = YES;

    }
}
于 2013-08-30T14:58:39.160 回答
0

代码没问题,但是你必须为scrollView添加委托

- (void)viewDidLoad {
    [super viewDidLoad];

    // do whatever
    ...

    // Add the delegate for the scrollview
    [_scrollView setDelegate:self];
}
于 2013-08-30T15:41:13.127 回答