【问题标题】:How to perform action "if content offset is greater than..."如何执行“如果内容偏移量大于...”的操作
【发布时间】:2013-05-16 21:13:13
【问题描述】:

我已经到处找了好几个小时了,但找不到适合我的解决方案。我要做的就是让我的应用程序在 uiscrollview 中的内容位置高于某个位置且低于另一个位置时执行某些操作。我希望这是有道理的。 这是我认为可行的代码:

- (void)viewDidLoad
{
    if (self.scrollView4.contentOffset.y >= 100 && self.scrollView4.contentOffset.y <=     200)
    {
         [self.scrollView4 setContentOffset:CGPointMake(100,0)];
    }
}

任何帮助将不胜感激!

编辑:如果忘记提及如果我做了一个“if”语句来说明如果 contentOffset 等于它开始时的 contentOffset,则执行该操作。看起来 contentOffset 保持在加载应用程序时给出的值。我应该提到,在应用程序的前面,我将 contentOffset 设置为一个值,但我不知道这是否会影响任何事情。

【问题讨论】:

    标签: objective-c uiscrollview contentoffset


    【解决方案1】:

    这对我来说很好。如果它对您不起作用,我建议您的问题出在其他地方

    [self.scrollview4 setDelegate:self];
    - (void)scrollViewDidScroll:(UIScrollView *)scrollView
    {
        if (scrollView.contentOffset.y >= 100 && scrollView.contentOffset.y <= 200)
        {
             NSLog(@"Caught");
        }
    }
    

    【讨论】:

    • 谢谢。它是 [self.scrollview4 setDelegate:self];做到了。由于我是编程新手,您能否简要说明为什么当我缺少“setDelegate”时它不起作用?
    • 将代理想象成计算机询问或告知的某人何时要执行某项操作,因此您只需对您的滚动视图说,在滚动前告诉我,滚动后告诉我,如果您要去滚动等。所以你的滚动视图想要发送消息,但你从来没有告诉它把它们发送给谁。它们是 iOS 的重要组成部分,因此您可以在此处阅读有关它们的更多信息developer.apple.com/library/ios/#documentation/General/…
    • 谢谢,现在更有意义了,我会阅读该文档。
    【解决方案2】:

    UIScrollViewDelegate 有一个方法 scrollViewDidScroll(只要关联的滚动视图滚动就会执行)。你可以在那里实现你的逻辑。

    【讨论】:

    • 我试过这样做,但没有任何区别,我明白为什么最好把它放在那里
    猜你喜欢
    • 2011-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-18
    • 2019-10-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多