0

幅208pt、高さ280ptのUIScrollViewがあり、幅200pt、高さ280ptのカスタムボタンが含まれており、それらの間に8ptのギャップがあります。このスクロールビューではページングが有効になっていますが、サブビューはクリップされないため、常に 1 つのボタンが中央に配置されますが、画面外に出た他のボタンは表示されます。ボタンをスワイプできるフィールドを画面の全幅にしようとしています.UIScrollViewプロパティを持ち、すべてのヒットを渡すPagingViewと呼ばれるUIScrollViewの2番目のカスタムサブクラスでこれを達成しようとしています.スクロールビューまで。ただし、何らかの理由で、次のようなページング ビューなしで試してみると:

unsigned height = self.view.frame.size.height;
scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(60, height - 308, 208, 280)];
scrollView.pagingEnabled = true;
scrollView.clipsToBounds = false;
scrollView.showsHorizontalScrollIndicator = false;
[self.view addSubview:scrollView];

フレームに限定されたスクロールビューと対話できるフィールドではありますが、機能します。ただし、スクロールビューで試してみると:

unsigned height = self.view.frame.size.height;
pagingView = [[PagingView alloc] initWithFrame:CGRectMake(0, height - 308, 320, 280)];
scrollView = [[UIScrollView alloc] initWithFrame:CGRectMake(60, height - 308, 208, 280)];
scrollView.pagingEnabled = true;
scrollView.clipsToBounds = false;
scrollView.showsHorizontalScrollIndicator = false;
pagingView.scrollView = scrollView;
[self.view addSubview:pagingView];
[self.view addSubview:scrollView];

動作しますが、画面のどこでもスワイプしてスクロールビューを移動できます。これを解決するにはどうすればよいですか?

4

1 に答える 1

0

あなたがここで何をしているのか明確ではありません。2 つのスクロール ビューを追加していますself.viewが、実際には 1 つしか必要ありません。

最小限のコードで最も簡単な方法は、プレーンな を 1 つ使用しUIScrollView、ボタンを適切なサイズUIViewの のサブビューとして表示し (ボタンの周りにギャップが必要です)、スクロール ビューのページングを有効にすることです。終わり。

あなたが説明する測定値はうまくいかないことに注意してください。スクロール ビューwidthは 208、ボタンは 200 であるため、ラッパー ビューの幅は 208、origin.xボタンの幅は 4 である必要があります。スクロール ビューheightは 280、ボタンも同様であるため、垂直マージンはありません。ボタンorigin.yは0です。

于 2013-07-03T09:17:31.460 に答える