Как сделать так, чтобы только пользователи мужского или женского пола показывались в приложении в стиле трут - PullRequest
0 голосов
/ 09 июля 2019

Я купил учебник udemy о том, как сделать приложение tinder с помощью 'zero2launch', и последовал ему, и он отлично работает, однако пользователи на картах - мужчины и женщины, и я хотел бы найти способ - использовать сегментированный контроль - показывать только мужчину или женщину.

Я попытался отправить им сообщение и через несколько дней не получил ответ, поэтому теперь обращаюсь к сообществу stackOverflow за помощью.

Я считаю, что это соответствующий бит кода

func findUsers() {

        if queryHandle != nil, myQuery != nil {
            myQuery.removeObserver(withFirebaseHandle: queryHandle!)
            myQuery = nil
            queryHandle = nil
        }

        guard let userLat = UserDefaults.standard.value(forKey: "current_location_latitude") as? String, let userLong = UserDefaults.standard.value(forKey: "current_location_longitude") as? String else {
            return
        }

        let location: CLLocation = CLLocation(latitude: CLLocationDegrees(Double(userLat)!), longitude: CLLocationDegrees(Double(userLong)!))
        self.users.removeAll()

        myQuery = geoFire.query(at: location, withRadius: distance)

        queryHandle = myQuery.observe(GFEventType.keyEntered) { (key, location) in

            if key != Api.User.currentUserId {
                Api.User.getUserInforSingleEvent(uid: key, onSuccess: { (user) in
                    if self.users.contains(user) {
                        return
                    }
                    if user.isMale == nil {
                        return
                    }
                    self.users.append(user)
                    self.setupCard(user: user)
                    print(user.username)
                })
            }
        }
    }

}

Любая помощь будет высоко оценена!

1 Ответ

0 голосов
/ 09 июля 2019

Я до сих пор не понимаю, в чем ваша конкретная проблема? Вы могли бы использовать это:

@IBAction func selectGender(_ sender: UISegmentedControl) {
    switch(sender.selectedSegmentIndex){
    case 1: // male users
        // update your cards to only list male users
        self.users = self.users.filter { $0.isMale }
    case 2: // female users
        self.users = self.users.filter { !$0.isMale }
    }
}

и подключите это действие к вашему сегментированному элементу управления

...