2017-09-06 4 views
1

J'utilise JSQMessagesViewController pour implémenter le chat dans mon application. Je veux être en mesure d'envoyer l'utilisateur que je discute avec mon emplacement. C'est ce que j'ai fait. Mais quand je clique sur le bouton Envoyer l'emplacement, j'obtiens une bulle d'image avec une roue qui roule et qui reste allumée indéfiniment. enter image description hereenvoyer l'emplacement en utilisant JSQLocationMediaItem

+0

Hey j'essaie d'utiliser ce code mais qu'est-ce que c'est exactement: self.latestLocation = locations [locations.count-1] Pouvez-vous l'expliquer? –

Répondre

1

Ajout de la solution dans votre code

func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 
    self.latestLocation = locations[locations.count-1] 

} 

let sendLocation = UIAlertAction(title: "Send Location", style: .default, handler: { (action) -> Void in 



     let loc: JSQLocationMediaItem = JSQLocationMediaItem() 
     loc.setLocation(self.latestLocation) { // Added completion handler for updating the map after getting the location. 

     loc.appliesMediaViewMaskAsOutgoing = true 

     let locmessage: JSQMessage = JSQMessage(senderId: self.senderId, senderDisplayName: self.senderDisplayName, date: NSDate() as Date!, media: loc) 

     self.messages.append(locmessage) 

     self.finishSendingMessage(animated: true) 
     self.collectionView.reloadData() 

     print("Location button tapped") 
    }) 
} 

    let cancelButton = UIAlertAction(title: "Cancel", style: .cancel, handler: { (action) -> Void in 
     print("Cancel button tapped") 
    }) 

    alertController.addAction(sendLocation) 

    self.navigationController!.present(alertController, animated: true, completion: nil) 

Vous devez définir l'emplacement après avoir terminé la création d'objets de l'emplacement.

+0

Hey j'essaie d'utiliser ce code mais qu'est-ce que c'est exactement: self.latestLocation = locations [locations.count-1] Pouvez-vous l'expliquer? –

+0

@GhiggzPikkoro self.latestLocation = locations [locations.count-1] permet de sélectionner le dernier emplacement de la méthode déléguée CLLocationManager. –

+0

Ok, je l'ai fait d'une autre manière et cela peut fonctionner aussi, mais je veux vous demander si vous savez comment lorsque l'utilisateur tape sur la bulle avec la carte, il peut afficher la carte dans la vue tout? Est-ce possible selon toi? As-tu fais ça ? –