【问题标题】:scrollview does not change contentOffset滚动视图不会改变 contentOffset
【发布时间】:2011-05-03 08:07:21
【问题描述】:

我有一个大的水平滚动视图,上面有不同的视图。 滚动工作正常,但现在我添加了按钮转到下一页的上一页。 我认为这段代码可以解决问题,因为我已经用过几次了:

-(void)goBack{ 
    CGPoint offset = [self.scrollview contentOffset];
    NSLog(@"Offset : %@", NSStringFromCGPoint(offset));

    [self.scrollview setContentOffset:huidigeOffset];

    CGPoint offset2 = [self.scrollview contentOffset];
    NSLog(@"Offset2 : %@", NSStringFromCGPoint(offset2));}

但是这不起作用,对于第一个和最后一个 NSLog 我得到这个结果:

2011-05-03 09:41:42.066 Elektrozine_V6[1668:207] Offset : {0, 0}
2011-05-03 09:41:42.066 Elektrozine_V6[1668:207] Offset2 : {0, 0}

在 viewDidLoad 中,偏移量设置为:

2011-05-03 09:41:38.497 Elektrozine_V6[1668:207] Offset : {600, 0}

这部分是正确的,我实际上是这样设置的:

    [scrollview setContentSize:CGSizeMake(2141, 0)];
    scrollview.contentOffset = CGPointMake((int)600, 0);

    huidigeOffset = [self.scrollview contentOffset];

有没有人知道为什么它在我制作的方法中不起作用? 我搜索了很多网站,但没有人给出真正的答案

亲切的问候!

下雪

【问题讨论】:

    标签: iphone ios uiscrollview


    【解决方案1】:


    如果要转到上一页,则需要调用 scrollRectToVisible 方法而不是 setContentOffSet。

    【讨论】:

    • 感谢您的提示,我试过这个:'[scrollview scrollRectToVisible:CGRectMake(0, 0, 10, 10) animated:YES];'但它什么也没做,我确信 xCode 会因为我放在那里的 NSLog 而进入该方法。 grtz下雪了
    【解决方案2】:

    试试这个

    -(void)goBack{ 
    
        NSLog(@"Offset : %@", NSStringFromCGPoint(scrollview.contentOffset));
        [scrollview setContentOffset:huidigeOffset];
        NSLog(@"Offset2 : %@", NSStringFromCGPoint(scrollview.contentOffset));
    }
    

    【讨论】:

    • 我在控制台中得到了和上面一样的结果,grtz snowy
    • 您在一种情况下访问 self.scrollview 而在另一种情况下只访问滚动视图。使其统一并尝试
    • 当我使它统一时,它仍然是相同的结果,{0,0}。当我尝试用户 dks1725 的解决方案时,它也什么都不做。 grtz
    • 在委托方法scrollViewDidScroll:中查看内容偏移量是否变化@
    • 我无法在我的文件中访问此方法,这可能吗?
    猜你喜欢
    • 1970-01-01
    • 2013-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-06-17
    相关资源
    最近更新 更多