SwiftUI ForEach コード例

SwiftUI ForEach

SwiftUIにはForEachという構造体(struct)があります。このForEachIdentifiedデータを用いてオンデマンドでViewを再構築してくれます。ForEachイニシャライザにidパラメータを提供する必要があります。

数字をカウントさせてTextに埋める場合のコード例

var body: some View {
	VStack{
		ForEach(0..<10){_i in
			Text("\(_i)")
		}
	}
}

文字配列を使ったForEachコード例

var body: some View {
	VStack{
		ForEach(["不思議の国のトムキンス","すばらしい新世界"], id: \.self){
			Text($0)
		}
	}
}

Identifiable構造体の配列を使ったForEachコード例

struct Hoge: Identifiable{ 
    var id = UUID()
    var value : String
}

上記のようなIdentifiable継承したstructを使った配列はForEachで利用可能です

struct ContentView: View {
    @State var hogeList:[Hoge] = [Hoge(value: "Aldous Leonard Huxley"),Hoge(value: "James Patrick Hogan")]
    var body: some View {
        VStack{
            ForEach(hogeList){_i in
                let hoge: String = _i.value
                Text("\(hoge)")
            }
        }
    }
}

Swift 文字列の㌫エンコード/デコード

addingPercentEncoding

Swiftの文字列(String)には、addingPercentEncoding()という関数が用意されています。これを使えばを文字列から㌫エンコードすることができます。エンコードされた文字列は、%E3%81%82のようなURLのQueryでよく見かけるフォーマットです。

let s = "不思議の国のトムキンス".addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlQueryAllowed)!
print(s)

上記コードは、addingPercentEncoding()のコード例です%E4%B8%8D%E6%80%9D%E8%AD%B0%E3%81%AE%E5%9B%BD%E3%81%AE%E3%83%88%E3%83%A0%E3%82%AD%E3%83%B3%E3%82%B9と出力されます

このパーセントエンコードされた文字列をもとに戻すにはremovingPercentEncodingを使います。removingPercentEncodingは、String内にある関数です

let s = "%E6%80%AA%E7%8D%A3%E2%AD%90".removingPercentEncoding
print(s as Any)

2022 MJELD TECHNOLOGIES. ALL RIGHTS RESERVED