実現したいこと
iPhoneにある連絡先アプリの一覧画面のような、あいうえお順(濁点のものも同じセクション)でセクションで区切る。
前提
連絡先の情報は、APIで取得しています。
発生している問題・エラーメッセージ
エラーメッセージではないのですが、濁点があっても同じセクションに入れる方法がわからない状況です。
該当のソースコード
コードは抜粋しています。
SwiftUI
1struct ContactListView: View { 2 let kanadata = ["ア","イ","ウ","エ","オ","カ","キ","ク","ケ","コ","サ","シ","ス","セ","ソ","タ","チ","ツ","テ","ト","ナ","ニ","ヌ","ネ","ノ","ハ","ヒ","フ","ヘ","ホ","マ","ミ","ム","メ","モ","ヤ","ユ","ヨ","ラ","リ","ル","レ","ロ","ワ"] 3 4var body: some View { 5NavigationView{ 6 VStack{ 7 List{ 8 ForEach(kanadata, id: \.self) { kana in 9 10 let filteredContact = contact.filter{ $0.first_name_kana.hasPrefix(kana)} 11 12 if !filteredContact.isEmpty { 13 14 Section(header: Text("\(kana)")) { 15 16 ForEach(contact.filter{ $0.first_name_kana.hasPrefix(kana)}, id: \.contact_id) { item in 17 18 NavigationLink(destination: ContactView(contactId: item.contact_id)){ 19 HStack{ 20 Text(item.first_name) 21 Text(item.last_name) 22 } 23 }
試したこと
下記の条件を修正してみましたが、うまくいきませんでした。
修正前
let filteredContact = contact.filter{ $0.first_name_kana.hasPrefix(kana)}
修正後
let filteredContact = contact.filter{ $0.first_name_kana.hasPrefix(kana) || contact.filter{ $0.first_name_kana.hasPrefix((kana + "゛"))}}
補足情報(FW/ツールのバージョンなど)
どのような方法で実現可能なのか分からず、困っています。
こんな感じ? (セクションインデックス自前で作りたくないなあ…)
https://stackoverflow.com/questions/58809357/swiftui-list-with-section-index-on-right-hand-side
回答いただきありがとうございました。
頂いた情報を参考に格納したデータをセクションで区切るところまではできました。
もし可能であれば教えていただければと思ってますが、濁点付きの文字も同じセクションに入れたい場合どのような実装になるでしょうか?
ガやパやをそれぞれカ、ハなどのセクションに入れる処理を、地道に書くしかないかと…。やり方はいろいろ考えられますが。
コメントありがとうございます。
上記の試したこと、のような方法しか思い浮かばなかったのですが、他にはどのような方法があるのでしょうか?

回答1件
あなたの回答
tips
プレビュー