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

时间:2013-08-30 14:45:25

标签: iphone ios objective-c uiscrollview

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

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

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

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

        mapLaunchButton.enabled = NO;
    }
}

感谢您的帮助

3 个答案:

答案 0 :(得分: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;
    }
}

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

答案 1 :(得分:0)

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

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

      mapLaunchButton.enabled = NO;
    }

    else  {

      mapLaunchButton.enabled = YES;

    }
}

答案 2 :(得分:0)

代码没问题,但您必须为scrollView添加代理

- (void)viewDidLoad {
    [super viewDidLoad];

    // do whatever
    ...

    // Add the delegate for the scrollview
    [_scrollView setDelegate:self];
}