Gelişmiş Yer Listesi bileşeni
Gelişmiş Yer Listesi bileşeni, bir yer listesi tanımlamanıza ve görüntülemenize olanak tanır. Yer Ayrıntıları bileşeni (Yer Kimlikleri, Yer Kaynak Adları veya enlem/boylam koordinatları) tarafından desteklenen aynı kimlik grubundan en fazla 20 yer listeleyebilirsiniz.
Yatay veya dikey liste görünümü seçebilirsiniz. Varsayılan yön dikeydir. Her liste öğesi için kısa ve tam yer ayrıntıları kartlarındaki bilgiler ve yapılandırma seçenekleri kullanılabilir.
Liste oluşturmak içinAdvancedPlaceListView öğesinin orientation, placeIdentifiers ve configuration parametrelerini kullanın. Daha fazla bilgi için Örnek bölümüne bakın.
Faturalandırma
Her liste isteği için faturalandırılırsınız ve listede yapılan her değişiklik yeni bir faturalandırılabilir etkinliktir.
Örnek
Bu örnek, yer tanımlayıcılarına dayalı bir liste oluşturur. configuration parametresi, her liste öğesinin adres, puan ve türün yanı sıra diğer görsel özellikleri de listeleyeceğini belirtir. Kullanıcının her liste öğesini favorilere eklemesine veya favorilerden kaldırmasına olanak tanıyan bir ana işlem oluşturulur. Köşe işlemleri, her liste öğesi için devre dışı bırakılır.
Swift
struct AdvancedPlaceListDemoView: View { private let configuration = AdvancedPlaceListConfiguration( content: [.address(), .rating(), .type()], preferTruncation: true, theme: PlacesMaterialTheme(), attributionPosition: .bottom, mediaSize = .medium, selectable: true ) @State private var placeIdentifiers = [.placeID("ChIJj61dQgK6j4AR4GeTYWZsKWw")] @State private var favoritePlaces: Set<String> = [] var body: some View { AdvancedPlaceListView( orientation: .horizontal, // default is vertical placeIdentifiers: placeIdentifiers, configuration: configuration ) .onLoad { results in for result in results { switch result { case .success(let place) print("place: \(place)") case .failure(let error) print("error: \(error)") } } } .onPlaceSelected { place, index in print("place: \(place)") print("index: \(index)") } .mainActions { place in var actions: [MainPlaceActionElement] = [] let placeID = place.placeID! if self.favoritePlaces.contains(placeID) { actions.append( .action( MainPlaceAction( image: Image(systemName: "heart.fill"), label: "Unfavorite" ) { _ in self.toggleFavorite(placeID) } ) ) } else { actions.append( .action( MainPlaceAction( image: Image(systemName: "heart"), label: "Favorite" ) { _ in self.toggleFavorite(placeID) } ) ) } actions.append(.actionId(.openMap(style: .primary))) return actions } // Ensures that there are no corner actions. .cornerActions { _ in return [] } } func toggleFavorite(_ placeID: String) { if favoritePlaces.contains(placeID) { favoritePlaces.remove(placeID) } else { favoritePlaces.insert(placeID) } } }