XCode 12.5 日本語化計画:Swift Tutorials
macOS アプリの作成
セクション 4
LandmarkRow と同様に、LandmarkList はすでに macOS で機能していますが、改善点を使用することもできます。たとえば、お気に入りのみを表示するためのトグルスイッチをツールバーのメニューに移動すると、このメニューには、追加のフィルタリングコントロールを結合できます。
行う変更は macOS と iOS の両方で機能しますが、watchOS で対応するのは困難です。幸い、前のセクションでは、リストを watchOS 用の別のファイルに分割しました。
ステップ 1
MacLandmarks スキームに戻り、iOS と macOS をターゲットとする LandmarkList ファイルで、新しい toolbar 修飾子内に Menu を含む ToolbarItem を追加します。
アプリを実行するまで、toolbar の更新を確認することはできません。
ステップ 2
お気に入りの Toggle を Menu の中に移動します。
これにより、プラットフォーム固有の方法で toggle がツールバーの中に移動します。これには、ランドマークのリストがどれだけ長くなるか、またはユーザがどれだけ下にスクロールしてもアクセスできるようにするという追加の利点があります。
利用可能なスペースが増えたら、landmarks のリストをカテゴリでフィルタリングするための新しいコントロールを追加しましょう。
ステップ 3
FilterCategory 列挙体を追加して、フィルターの状態を記述します。
case 文字列をランドマーク構造体内の Category 列挙型と一致させて比較できるようにして、すべての case を含めてフィルタリングをオフにします。
ステップ 4
filter 状態変数を追加しますが、デフォルトではすべての case です。
フィルタの状態をリストビュー内に保存することで、ユーザはそれぞれ独自のフィルタ設定を持つ複数のリストビューウィンドウを開いて、さまざまな方法でデータを表示できます。
ステップ 5
特定の landmark のカテゴリと組み合わせて、新しい filter 設定を考慮に入れるように filteredLandmarks を更新します。
ステップ 6
メニューに Picker を追加して、フィルタカテゴリを設定します。
フィルタには数個のアイテムしかないため、InlinePickerStyle を使用して、それらをすべて一緒に表示します。
ステップ 7
filter の状態に一致するように navigation title (ナビゲーションタイトル) を更新します。
この変更は、iOS アプリで役立ちます。
ステップ 8
広いレイアウト内の 2 番目のビューのプレースホルダーとして 2 番目の子供ビューを NavigationView に追加します。
2 番目の子供ビューを追加すると、サイドバーリストスタイルを使用するようにリストが自動的に変換されます。
ステップ 9
macOS ターゲットを実行し、メニューがどのように動作するかを確認します。
ステップ 10
Landmarks ビルドターゲットを選択し、ライブプレビューを使用して、新しいフィルタリングが iOS でも適切に機能することを確認します。
iOS でもサイドバーリストスタイルが使用されていることに注意してください。
LandmarkList.swift
LandmarkList.swift
LandmarkList.swift
LandmarkList.swift
LandmarkList.swift
LandmarkList.swift
LandmarkList.swift
LandmarkList.swift
セクション 1 | セクション 2 | セクション 3 | セクション 4 |
セクション 5 | セクション 6 | セクション 7 | |
セクション 101 | セクション 102 | セクション 103 | セクション 104 |
セクション 105 | セクション 106 | セクション 107 |