98

私はUIViewiPhoneのSpringboardのようなものを持っています。UIScrollViewとを使用して作成しましたUIButtons。上記のスクロールビューで水平スクロールを無効にしたい。縦スクロールだけしたい。どうすればこれを達成できますか?

4

15 に答える 15

126

contentSizeのプロパティを設定する必要がありUIScrollViewます。たとえばUIScrollView、幅が 320 ピクセル (画面の幅) の場合、次のようにすることができます。

CGSize scrollableSize = CGSizeMake(320, myScrollableHeight);
[myScrollView setContentSize:scrollableSize];

UIScrollView、すでにすべてを水平方向に表示できるため、垂直方向にのみスクロールします。

于 2009-06-30T16:31:27.040 に答える
11

iOS7以降

self.automaticallyAdjustsScrollViewInsets = NO;

//そして、3 ページのページ スクローラーを作成します

    self.pageView = [[UIScrollView alloc] initWithFrame:CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height)];
    [self.pageView setContentSize:CGSizeMake(self.view.frame.size.width*3, self.view.frame.size.height)];
    [self.pageView setShowsVerticalScrollIndicator:NO];
    [self.pageView setPagingEnabled:YES];
    [self.view addSubview:self.pageView];
于 2014-01-22T10:45:30.590 に答える
9

私の場合、Swift 4.2 では以下を使用できます。

垂直スクロールを無効にします。

func scrollViewDidScroll(_ scrollView: UIScrollView) {
    scrollView.contentOffset.y = 0.0
}

水平スクロールを無効にします。

func scrollViewDidScroll(_ scrollView: UIScrollView) {
    scrollView.contentOffset.x = 0.0
}
于 2019-06-18T14:24:34.153 に答える
0

このスレッドや他のスレッドでさまざまな提案を試してみましたが、しばらくの間これに苦労しました。

ただし、別のスレッド (場所がわからない) で、誰かが UIScrollView で負の制約を使用するとうまくいくと提案しました。

そのため、一貫性のない結果でさまざまな制約の組み合わせを試しました。最終的に私にとってうまくいったのは、スクロールビューに -32 の先頭と末尾の制約を追加し、幅が 320 (および中央) の (非表示の) テキストビューを追加することでした。

于 2015-06-18T15:26:36.747 に答える
-1

UIScrollView を 1 つのセルのみを持つ UITableView に置き換えると、正常に機能しました。

于 2015-05-20T11:31:47.087 に答える