SwiftUI 如何讓 List 中的 Button 正常運行

【 Swift 】

目前要在SwiftUI中加入Button 到 List中,會導致點擊不正常,若只有一個按鈕倒是沒什麼問題,整個欄位點擊就會對應那個單一按鈕促發的事件。但今天的情況如果是需要一個以上的按鈕呢?

這時候問題就來了! 這種情況下,點擊表格就會無法準確指定要促發哪個按鈕。一般來說,網路上都會推薦您使用Foreach的方式去呈現,沒錯,這樣確實能讓每個按鈕都正常運作,但是當資料量到一個程度這將導致效能大幅下降,明顯呈現畫面延遲,因此最後還是得回到List。那今天要怎麼解決這個問題呢?簡單!請看!

技術相關 :SwiftUI ButtonStyle PlainButtonStyle List

List(0 ..< 20){index in
    HStack{
        Button {
             //event1
        } label: {
          Text("button1")
        }
        .buttonStyle(.plain)

        Button {
             //event2
        } label: {
          Text("button2")
        }
        .buttonStyle(.plain)
    }
}

沒有錯!就是這個修飾符 .buttonStyle(.plain) , 帶上他,就能讓我們Button在List中正常運作了!又或者這邊可以使用 .buttonStyle(PlainButtonStyle()),兩者是一樣的