Xcode Libraryにカスタムビューとモディファイアを追加する
環境
・Xcode 12.3
内容
Xcode Libraryにカスタムビ
ューとモディファイアを追加する方法
サンプルは犬のリストを表示する画面
ビューの作成とImage拡張を作成
・犬情報を表示するビューDogRowViewを作成
・Imageのサイズ変更処理をするresizedToFit(width:height:)を作成
作成したビューやモディファイアをXcode Library(⌘+⇧+L)から呼び出すためにはLibraryContentProviderに準拠した構造体を用意する必要がある
LibraryContentProvider
・LibraryContentProviderに準拠
・LibraryContentBuilderを修飾
・カスタムビューの場合はvar views: [LibraryItem]を実装
・モディファイアの場合はfunc modifiers(base: Any) -> [LibraryItem]を実装
・LibraryItemはtitleやcategoryの指定も可能
・同じビューで引数が違う場合などはtitleをつける
/// カスタムライブラリーコンテンツ
struct LibraryContent: LibraryContentProvider {
// カスタムビュー
@LibraryContentBuilder
var views: [LibraryItem] {
LibraryItem(
DogRowView(dog: .akitainu),
category: .control // カテゴリーを指定
)
LibraryItem(
DogRowView(dog: .akitainu, favorite: false),
title: "Dog Row View With Favorite", // タイトルを指定
category: .control // カテゴリーを指定
)
}
// カスタムモディファイア
@LibraryContentBuilder
func modifiers(base: Image) -> [LibraryItem] {
LibraryItem(
base
.resizedToFit(width: 80.0, height: 80.0),
category: .effect // カテゴリーを指定
)
}
}
コード
結果
⌘+⇧+Lでライブラリを表示、検索などで利用可能になる
Views library
Modifiers library
画面
参考
この記事が気に入ったらサポートをしてみませんか?