์ง๊ธ๊น์ง ๋ง๋ ์ฑํ ์ฑ์์ ๋ถ์กฑํ 3๊ฐ์ง๋ฅผ ์ฑ์๋ณด์.
1. ๋ฐ์ ์/์์ ์ ๊ตฌ๋ถํ๊ธฐ
2. ์ต์ ๋ฉ์ธ์ง(๋งจ ์๋)์ผ๋ก ํ๋ฉด ์คํฌ๋กคํ๊ธฐ.
3. ์๋จ ๋ค๋น๊ฒ์ด์ ๋ฐ ๊พธ๋ฏธ๊ธฐ
1. ๋ฐ์ ์/์์ ์ ๊ตฌ๋ถํ๊ธฐ
1) ๊ธฐ์กด์ ๋ง๋ค์๋ Cell ์ another user ์ด๋ฏธ์ง ์ถ๊ฐํ๊ธฐ.
์ผ์ชฝ์ ๊ธฐ์กด Cell ์ right Image ๋ฅผ ๋ณต์ฌํด์ ์ผ์ชฝ์ ๋ถ์ฌ๋ฃ๊ณ You ์ด๋ฏธ์ง๋ก ๋ฐ๊ฟ์ค๋ค.
์ฑํ ๋ฉ์ธ์ง๊ฐ ๋ณธ์ธ์ด๋ฉด Me, ์๋๋ฐฉ์ด๋ฉด You ์ด๋ฏธ์ง๋ฅผ ๋ณด์ฌ์ฃผ๊ฒ ํ ๊ฒ์ด๋ค.
2) MessageCell ์คํฌ๋ฆฝํธ์ leftImageView ๊ฐ์ฒด ์ถ๊ฐํ๊ธฐ.
์ด๋ฏธ์ง ๊ฐ์ฒด๋ฅผ ์ํฉ์ ๋ง๊ฒ ๋ค๋ฃฐ ์ ์๋๋ก ๊ฐ์ฒด๋ก ์ถ๊ฐํด์ฃผ์.
3) ChatViewController ํด๋์ค์ ์ฝ๋ ์ถ๊ฐํ๊ธฐ
extension ChatViewController: UITableViewDataSource{
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return messages.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let message = messages[indexPath.row]
let cell = tableView.dequeueReusableCell(withIdentifier: K.cellIdentifier, for: indexPath)
as! MessageCell
cell.label.text = messages[indexPath.row].body
//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)
}
//This is a message from the another user.
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
}
}
Auth.auth().currentUser?.email ๊ตฌ๋ฌธ์ ์ด์ฉํด์ ํ์ฌ message sender ๊ฐ ๋ณธ์ธ์ด๋ฉด rightImage๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ๋งํ์ ์๊น์ ๋ฐ์ ๋ณด๋ผ์, ๊ธ์์์ ๋ณด๋ผ์์ผ๋ก ํํํด์ค๋ค.
์๋๋ฐฉ์ ๋ฉ์ธ์ง๋ผ๋ฉด leftImage๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ๋งํ์ ์๊น์ ๋ณด๋ผ์, ๊ธ์์์ ๋ณด๋ผ์์ผ๋ก ํํํด์ค์ ๋ณธ์ธ๊ณผ ์๋๋ฐฉ์ ๋งํ์ ์ ๊ตฌ๋ณํด์ค๋ค.
4) ๊ฒฐ๊ณผํ๋ฉด
๊ณ์ ์ ํ๋ ๋ ๋ง๋ค์ด์ ์ ์ํด์ ์ฑํ ์ ๋ณด๋ด๋ณด๋ฉด ์ ๊ตฌ๋ถ๋๋ ๊ฒ์ ํ์ธํ ์ ์๋ค.