web-dev-qa-db-ja.com

プログラムで、ページングを使用してscrollViewの特定のページに移動します

プログラムで特定のページに移動するにはどうすればよいですか。基本的に、私は一連のサブビュー(この場合はtableViews)が入力されたscrollViewを備えたアプリを持っています。サブビューをクリックするとズームインし、ユーザーはテーブルを編集およびナビゲートできますが、ズームアウトすると、ユーザーが変更を加えた場合に備えてビュー全体をリロードします。もちろん、ビューをリロードすると、ユーザーはページ0に戻ります。pageControl.currentpageプロパティを設定しようとしましたが、pageControlのドットを変更するだけです。それは何かが間違っていることを意味しますか、それとも私も何か他のことをする必要がありますか?

ページのスクロールを制御しているのは、次の方法だけです。

- (void)scrollViewDidScroll:(UIScrollView *)sender 
{
CGFloat pageWidth = self.scrollView.frame.size.width;
int page = floor((self.scrollView.contentOffset.x - pageWidth / 2) / pageWidth) + 1;
self.pageControl.currentPage = page;

NSString *listName = [self.wishLists objectAtIndex:self.pageControl.currentPage];
self.labelListName.text = listName;
}
29
Glitch

対応するスクロール位置を手動で計算する必要があります。ページiにスクロールするには:

[scrollView setContentOffset:CGPointMake(scrollView.frame.size.width*i, 0.0f) animated:YES];
49
Ole Begemann

OleBegemannによる上記の回答のSwift5バージョン

scrollView.setContentOffset( CGPoint(x: scrollView.frame.size.width * i, y: 0.0), animated: true)

0
Atul Vasudev A