gpt4 book ai didi

iphone - 如何以编程方式使用 UIScrollView 强制滚动?

转载 作者:可可西里 更新时间:2023-11-01 03:55:27 26 4
gpt4 key购买 nike

我有一个水平 UIScrollview 设置(这意味着它不是上下滚动的,而是只左右滚动的)并且在应用程序启动时,我希望这个 ScrollView 向左滚动,然后向右 - 有点“展示”它的滚动能力 - 最后然后停止,然后让用户接管并用他们的手指手动控制滚动。一切正常 - 除了这个加载左右演示滚动。

我没有为这些使用 Interface Builder,我正在用代码做所有事情:

//(this is in viewDidLoad:)
// Create the scrollView:
UIScrollView *photosScroll = [[UIScrollView alloc] initWithFrame: CGRectMake(0, 0, 320, 200)];
[photosScroll setContentSize: CGSizeMake(1240, 200)];
// Add it as a subview to the mainView
[mainView addSubview:photosScroll];


// Set the photoScroll's delegate:
photosScroll.delegate = self;

// Create a frame to which to scroll:
CGRect frame = CGRectMake(10, 10, 80, 150);
// Scroll to that frame:
[photosScroll scrollRectToVisible: frame animated:YES];

因此 scrollView 加载成功,我可以用手指左右滚动它 - 但它并没有像我希望的那样进行这种“自动滚动”。

  • 我尝试在添加之前和之后调用 scrollRectToVisiblescrollView 作为 subview - 没有用。
  • 想也许这应该发生在 loadView 而不是 viewDidLoad 中?但如果是这样,怎么做?

有什么想法吗?

最佳答案

有几种方法可以做到这一点:

  1. 使用scrollRectToVisible:animated:对于零 X 值,然后是一个较大的正值,然后将其设置回您的中间点。您可以在将 ScrollView 添加为 subview 后调用该方法(可能之前也是如此,但最好是安全的)。您需要使用 contentSize 和有关 ScrollView 内各种元素的宽度的知识来计算左侧屏幕外 X 的值。
  2. 由于您只是在做一个快速的动画,并且会给用户控制权,所以这确实是一个快速而肮脏的动画,所以您可以使用 setContentOffset:animated:强制 ScrollView 的内容相对于您当前的 View 位置移动。将元素向右移动以进行左滚动(正 X 值),然后向左移动两倍以进行右滚动(负 X 值),然后将偏移量设置回零。

你不应该把它们放在 viewDidLoadloadView 中;将它们放在 viewDidAppear 中,这是在您的 ScrollView 实际绘制在屏幕上之后。您只关心用户可以看到的动画!

关于iphone - 如何以编程方式使用 UIScrollView 强制滚动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7871039/

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