如果UIScrollView滚动超过一定数量,我将如何禁用UIButton?
这就是我一直在尝试的。也许这是错误的scrollViewDidScroll:委托方法。
- (void)scrollViewDidScroll:(UIScrollView *)scrollView {
if (_scrollView.contentOffset.y >= 100) {
mapLaunchButton.enabled = NO;
}
}
感谢您的帮助
答案 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];
}