J'ai 2 cellules prototypes.Laisser la cellule apparaître et disparaître en fonction de TextInput
On représente tous les commentaires de la publication. Ceci est initialement présenté.
Si un utilisateur écrit un signe "@", une tableview avec les utilisateurs qu'il peut choisir de lier apparaît.
Mon problème est que les cellules avec les utilisateurs ne disparaissent jamais. Je veux qu'ils disparaissent si une cellule est touchée ou si l'utilisateur supprime le signe @.
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
if (commentTextField.text?.contains("@"))! {
let cellForUser = tableView.dequeueReusableCell(withIdentifier: "UserCell", for: indexPath) as! SuggestUserTableViewCell
let user = usersSuggestion[indexPath.row]
cellForUser.userSuggested = user
return cellForUser
} else {
let cell = tableView.dequeueReusableCell(withIdentifier: "CommentCell", for: indexPath) as! CommentTableViewCell
let comment = comments[indexPath.row]
let user = users[indexPath.row]
cell.tapMore.tag = indexPath.row
cell.comment = comment
cell.postId = postId
cell.user = user
cell.delegate = self
return cell
}
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
let caption = commentTextField.text
let words = caption?.components(separatedBy: CharacterSet.whitespacesAndNewlines)
for var word in words! {
if word.hasPrefix("@") {
word = word.trimmingCharacters(in: CharacterSet.punctuationCharacters)
return usersSuggestion.count
}
}
return comments.count
}
De plus, je voudrais avoir le cell2 avec les utilisateurs en bas, actuellement les deux commencent au sommet de l'écran.
Et je ne veux pas laisser les commentaires disparaître, juste diminuer l'opacité de la cellule. Cell2 devrait disparaître dès que la cellule a été touchée ou que le signe @ a été supprimé.
Merci à l'avance
Mise à jour le code
@objc func textFieldDidChange() {
doSearch()
if let commentText = commentTextField.text , !commentText.isEmpty {
sendButton.setTitleColor(UIColor.blue, for: UIControlState.normal)
sendButton.isEnabled = true
return
}
sendButton.setTitleColor(UIColor.lightGray, for: UIControlState.normal)
sendButton.isEnabled = false
}
func doSearch() {
let caption = commentTextField.text
let words = caption?.components(separatedBy: CharacterSet.whitespacesAndNewlines)
for var word in words! {
if word.hasPrefix("@") {
word = word.trimmingCharacters(in: CharacterSet.punctuationCharacters)
self.usersSuggestion.removeAll()
API.User.suggestUsers(withText: word, completion: { (user) in
self.usersSuggestion.insert(user, at: 0)
self.tableView.reloadData()
})
self.usersSuggestion.removeAll()
}else {
self.usersSuggestion.removeAll()
}
}
}
J'ai, le reste fonctionne bien, je vais le montrer dans mon code –