スウィフトUIデフォルトスクロールアンカー ノート

スウィフトUIデフォルトスクロールアンカー

SwiftUIにおけるスクロールビュー内のコンテンツの垂直方向の整列を、ダイナミックタイプサイズに適応する方法について論じる記事である。最初に、画面の高さを超える可能性のあるコンテンツを収めるために、シンプルなスクロールビューが使用される。しかし、これにより、コンテンツがスクロールビューよりも小さい場合に、コンテンツが上部に整列してしまうことがあり、これは望ましくない。iOS 17では、defaultScrollAnchorモディファイアが導入されたが、スクロールビュー内に収まるコンテンツのみを中央に整列させるというニュアンスが欠けていた。iOS 18では、新しいdefaultScrollAnchorモディファイアが導入され、roleパラメータが追加された。このパラメータにより、開発者はさまざまな状況、特に.alignmentを使用してコンテナよりも小さいコンテンツを整列させるためのアンカー点をカスタマイズできるようになった。.alignmentロールのアンカーを.centerに設定することで、コンテンツは収まる場合に中央に整列し、コンテナの高さを超える場合は上部に整列する。2つのビューモディファイアのバリアントは、デフォルトを変更し、特定のロールのアンカーをオーバーライドするために一緒に使用できる。新しいモディファイアは、コンテナ相対のサイズに基づいてスクロールビューのコンテンツの整列を管理するための、より洗練されたアプローチを提供する。これにより、コンテンツの垂直方向の位置を動的に調整することで、より良いユーザーエクスペリエンスが実現される。
CdXz5zHNQW_YDEZMZMpGv.png