構造体


ScrollViewReader


プロキシを使用し、既知の子ビューへとスクロールして、プログラムによるスクロールを提供するビュー。




宣言


@frozen struct ScrollViewReader<Content> where Content : View



概観


スクロールビューリーダーのコンテンツビュービルダーは、ScrollViewProxy インスタンスを受け取ります。プロキシの scrollTo(_:anchor:) を使用してスクロールを実行します。


以下の例では、色のグラデーションを一緒に表示する 100 個のビューを含む ScrollView を作成します。また、上部と下部にそれぞれ 1 つずつ、合計 2 つのボタンが含まれています。上のボタンは、ScrollViewProxy に、下のボタンへとスクロールするように指示し、その逆も同様です。


@Namespace var topID

@Namespace var bottomID


var body: some View {

ScrollViewReader { proxy in

ScrollView {

Button("Scroll to Bottom") {

withAnimation {

proxy.scrollTo(bottomID)

}

}

.id(topID)


VStack(spacing: 0) {

ForEach(0..<100) { i in

color(fraction: Double(i) / 100)

.frame(height: 32)

}

}


Button("Top") {

withAnimation {

proxy.scrollTo(topID)

}

}

.id(bottomID)

}

}

}


func color(fraction: Double) -> Color {

Color(red: fraction, green: 1 - fraction, blue: 0.5)

}





重要

content ビュービルダーの実行中に ScrollViewProxy を使用することはできません。これを行うと、実行時エラーが発生します。代わりに、ジェスチャハンドラやビューの onChange(of:perform:)メソッドなど、content 内で作成されたアクションのみがプロキシを呼び出すことができます。


トピックス




スクロールビューリーダの作成




スクロールビューリーダの構成




標準修飾子の適用






関連




以下への準拠


View



以下も見よ




スクロールビュー


















目次
Xcode の新機能

利用可能

iOS 14.0+

macOS 11.0+

Mac Catalyst 14.0+

tvOS 14.0+

watchOS 7.0+


  • フレームワーク
  • SwiftUI

    このページには

  • 宣言
  • 概観
  • トピックス
  • 関連
  • 以下も見よ












  • トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ












    トップへ