sir*_*333 6 iphone uiscrollview uikit ios
我有一个水平的 UIScrollview设置(意思是它不是向上和向下滚动但只向左滚动的一个)并且在应用程序启动时,我希望这个滚动视图向左滚动,然后向右滚动 - 有点"展示"它滚动的能力 - 然后最后停止,然后让用户接管并用手指手动控制滚动.一切正常 - 除了这个有载的左右演示滚动.
我没有使用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];
Run Code Online (Sandbox Code Playgroud)
所以scrollView加载成功,我可以用我的手指左右滚动它 - 但它不会像我希望的那样"自动滚动".
有任何想法吗?
有两种方法可以做到这一点:
scrollRectToVisible:animated:零X值,然后使用大的正值,然后将其设置回中间点.滚动视图作为子视图添加后可以调用该方法(可能之前也是如此,但最好是安全的).你需要使用你的contentSize知识来计算左边屏幕的X值,并了解滚动视图中各种元素的宽度.setContentOffset:animated:强制滚动视图的内容相对于当前视图位置移动.将元素向右移动以进行左滚动(正X值),然后向左移动两次以进行右滚动(负X值),然后将偏移设置回零.你不应该把任一中viewDidLoad或loadView; 把它们放进去viewDidAppear,这是在你的滚动视图实际绘制在屏幕上之后.您只关心用户可以看到的动画!