получить индекс из прокрутки - PullRequest
0 голосов
/ 28 октября 2019

Я пытаюсь удалить элемент из scrollView, когда пользователь долго нажимает на него.

поэтому, если элемент представления прокрутки поступает из простого массива (с именем post), мне удаетсяполучить isse, используя firstIndex (of: item)! и

ScrollView(.horizontal, content: {
            HStack(spacing: 100) {
                ForEach(post, id: \.self){ item in

                    ZStack {

                        Text(item).onTapGesture {

                            self.post.remove(at: self.post.firstIndex(of: item)!)
                        }
                    }
                }
                .padding(.leading, 10)
            }
        })

мой isse теперь, если мой массив (именованное хранилище) имеет тип модель:

class DataModel:Identifiable , Codable {
    var nameAirport : String
    var countryAirport : String
    var icaoAirport : String
    var metar: String
    var taf : String

как я могу найти индекс для передачи в методе remove? .firstIndex (at:) не существует. Я нашел только .firstIndex (где :), но не могу найти, как его использовать? Любая идея, как найти этот индекс?

здесь, под моим кодом? спасибо за помощь ...

 ScrollView(.horizontal, showsIndicators: true) {
                    HStack(spacing: 10) {
                        ForEach(dm.storage) { item in

                            VStack {

                       Text(item.icaoAirport).onLongPressGesture {

                                    self.dm.storage.remove(at: ) //// how can i get index 
                                    ///
                                }
                            }

                        }
                    }

                }

1 Ответ

0 голосов
/ 29 октября 2019

Я думаю, что вы можете сделать это без использования какого-либо аргумента, подобного следующему:

Text(item.icaoAirport).onLongPressGesture {
    self.dm.storage.remove
}

Обычно это должно работать. Я использовал эту технику с .onDelete(self.dm.storage.remove). Если это не работает, я предлагаю вам добавить идентификатор вашей модели.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...