【Swift UI】contextMenu(menuItems:)でビューを長押しでメニュー表示!ListやTextなど

この記事からわかること

  • Swift UIcontextMenu(menuItems:)モディファイア使い方
  • 長押しメニュー表示する方法
  • リスト1行メニューを表示する方法

index

[open]

\ アプリをリリースしました /

みんなの誕生日

友達や家族の誕生日をメモ!通知も届く-みんなの誕生日-

posted withアプリーチ

公式リファレンス:contextMenu(menuItems:)モディファイア

長押しでメニューを表示する方法:contextMenu(menuItems:)

Swift UIでcontextMenu(menuItems:)モディファイアを使用することでビューを長押しした際にメニューを表示する仕組みを実装することができます。実装方法は簡単でビューからcontextMenu(menuItems:)を呼び出し中に設置したいビューを渡すだけです。

Text("UserName")
.padding()
.contextMenu {
    Button {
        
    } label: {
        Label("BOOK", systemImage: "book")
    }
    Button {
        
    } label: {
        Label("iPhone", systemImage: "iphone")
    }
}

これで以下のように長押しするとメニューが表示されるようになります。

【Swift UI】contextMenu(menuItems:)でビューを長押しでメニュー表示!ListやTextなど

List構造体の1行1行に設置する

contextMenu(menuItems:)を使用することでList構造体の1行1行のビューにメニューを設置することも可能です。

struct ContentView: View {
    let langs = ["HTML", "PHP", "Swift","kotlin"]
    
    var body: some View {
        List(langs.indices, id:\.self){ index in
            Text(langs[index])
                .contextMenu {
                    Button {
                        
                    } label: {
                        Label("お気に入り", systemImage: "star")
                    }
                }
        }
    }
}
【Swift UI】contextMenu(menuItems:)でビューを長押しでメニュー表示!ListやTextなど

まだまだ勉強中ですので間違っている点や至らぬ点がありましたら教えていただけると助かります。

ご覧いただきありがとうございました。

searchbox

スポンサー

ProFile

ame

趣味:読書,プログラミング学習,サイト制作,ブログ

IT嫌いを克服するためにITパスを取得しようと勉強してからサイト制作が趣味に変わりました笑
今はCMSを使わずこのサイトを完全自作でサイト運営中〜

New Article

index