<aside> 💡 기존의 셀(메세지 발신)과 다른 형태의 셀(메세지 수신)을 만들고 싶다.
</aside>
현재 유저와 다른 유저의 메세지는 다른 모양이다.
새로운 커스텀 셀을 추가하는 방법(two different message cells)도 있지만, 기존의 셀을 재구성(?)하는 방법도 존재 (single cell, depending on the sender, differently style)
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
//display every each row, cells
//here create cell, return it tableview
let cell = tableView.dequeueReusableCell(withIdentifier: K.cellIdentifier, for: indexPath) as! MessageCell
cell.label.text = messages[indexPath.row].body//"\\(indexPath.row)"
return cell
}
MessageCell.xib file and make some small modifications
copy image view and paste
drag image view 복사한 이미지를 앞쪽에 놓는다
이미지 교체 and 이미지 뷰 연결
ChatViewController: DataSource 에서 메세지 셀을 만드는 부분 수정
//indexPath = position
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
//display every each row, cells
//here create cell, return it tableview
let message = messages[indexPath.row]
let cell = tableView.dequeueReusableCell(withIdentifier: K.cellIdentifier, for: indexPath) as! MessageCell
cell.label.text = message.body//"\\(indexPath.row)"
//This is a message from the current user.
if message.sender == Auth.auth().currentUser?.email {
cell.leftImageView.isHidden = true
cell.rightImageView.isHidden = false
cell.messageBubble.backgroundColor = UIColor(named: K.BrandColors.lightPurple)
cell.label.textColor = UIColor(named: K.BrandColors.purple)
} else {
cell.leftImageView.isHidden = false
cell.rightImageView.isHidden = true
cell.messageBubble.backgroundColor = UIColor(named: K.BrandColors.purple)
cell.label.textColor = UIColor(named: K.BrandColors.lightPurple)
}
return cell
}