#swift #uitableview #tableview #custom-cell
#swift #uitableview #просмотр таблицы #пользовательская ячейка
Вопрос:
У меня есть приложение для чата с 2 пользовательскими ячейками, ячейкой отправителя и получателя. После заполнения ячеек можно щелкнуть только те, в которых есть текст «показать изображение». Я пытаюсь щелкнуть по этим ячейкам, чтобы
- я могу скрыть метку
- Я могу показать изображение по URL-адресу
Функция tap работает, но я не могу выполнить вышеуказанные шаги. Пожалуйста, помогите, потому что я не знаю, как это сделать
Вот мой код
@objc
func tapFunctionCell(sender:UITapGestureRecognizer) {
print("tap again sen")
let tapLocation = sender.location(in: tblViewChat)
let indexPath = self.tblViewChat.indexPathForRow(at: tapLocation)
let position = indexPath?.row ?? 0
print(position)
let cell = tblViewChat.dequeueReusableCell(withIdentifier: "senderCell") as! SenderTblCell
cell.lblMessage.isHidden = true
let url = URL(string:objChatVM.getMessage(index:position))
print(url)
cell.ImageB.kf.setImage(with:url)
cell.ImageB.isHidden = false
}
@objc
func tapFunction(sender:UITapGestureRecognizer) {
print("tap again receive")
let cell2 = tblViewChat.dequeueReusableCell(withIdentifier: "receiverCell") as! ReceiverTblCell
cell2.lblMessage.isHidden = false
let tapLocation = sender.location(in: tblViewChat)
let indexPath = self.tblViewChat.indexPathForRow(at: tapLocation)
let position = indexPath?.row ?? 0
print(position)
let url = URL(string:objChatVM.getMessage(index:position))
print(url)
cell2.imageButton.kf.setImage(with:url)
cell2.imageButton.isHidden = false
}
Ответ №1:
Проблемы в коде функции tap. Если вы хотите получить ячейку из пути индекса, используйте метод cellForRow табличного представления. итак, вместо этого
let cell = tblViewChat.dequeueReusableCell(withIdentifier: "senderCell") as! SenderTblCell
используйте это для обоих действий с касанием.
let cell = tblViewChat.cellForRow(at: indexPath) as! SenderTblCell
Комментарии:
1. пусть cell = self.tblViewChat.cellForRow(at: indexPath!) как ! SenderTblCell благодарит Раджу Кишана