gpt4 book ai didi

objective-c - UIScrollView ScrollRectToVisible - 不使用动画 = 是

转载 作者:可可西里 更新时间:2023-11-01 04:36:45 28 4
gpt4 key购买 nike

我有一个包含按钮的 UIScrollView。按下按钮时,我想使用 scrollRectToVisible 滚动到 View 的底部。

例如:

CGRect r = CGRectMake(0, myUIScrollView.contentSize.height - 1, 1, 1);
[myUIScrollView scrollRectToVisible:r animated:YES];

如果我将 animated 设置为 NO,一切都会按预期进行,但是如果我将它设置为 YES,我会看到非常奇怪的行为:

  • 基本上,什么都不会发生。
  • 如果我反复点击按钮,它可能会滚动几个像素,或者可以一直滚动。
  • 但是如果我在按下按钮之前用手指手动 ScrollView ,它有机会按预期滚动到底部,但这并不确定。

我已经打印了 _geScroll_Settings.contentSize,它符合预期。

我还尝试通过启动计时器来延迟对 scrollRectToVisible 的调用,但结果几乎相同。

scrollView 相当普通。我在界面生成器中创建它。我在启动时动态添加 scrollView 的内容,并适当调整它的 contentSize,但所有这些似乎工作正常。

有什么想法吗?

最佳答案

我敢打赌 scrollRectToVisible 正在崩溃,因为可见区域无效 (1x1),或者 y 偏移 刚好在边界之外,您是否尝试过将其设置为可见区域的大小而不是 ScrollView 的区域?

CGRect rectBottom = CGRectZero;
rectBottom.size = myUIScrollView.frame.size;
rectBottom.origin.y = myUIScrollView.contentSize.height - rectBottom.size.height;
rectBottom.origin.x = 0;

[myUIScrollView scrollRectToVisible:rectBottom animated:YES];

抱歉,我无法为您提供更多帮助,但我现在不在 Mac 上,所以无法运行测试。上面的代码将创建一个 CGRect,其大小正好适合 scrollView 可见部分,偏移量将是其中的最后一个可见部分。

关于objective-c - UIScrollView ScrollRectToVisible - 不使用动画 = 是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7168780/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com