์ต์คํ ์ ์ ์ค์ํํธ์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ ์ค ํ๋์ด๋ค. ์ด ๊ธฐ๋ฅ์ ์ด์ฉํด, ๋ฌธ์ ํ์ ์ ๋ฌธ์๊ฐ ์ฑ๊ธ ์ด๋ชจ์ง์ธ์ง Bool ํ์ ์ผ๋ก ๋ฐํํ๋๋ก ํ๋ค. ๋๋ ํ๋ก์ ํธ์ Utilitiesํด๋ ์ Extensions ์ฝ๋์ ์ถ๊ฐํ์๋ค.
extension String {
var isSingleEmoji: Bool {
if unicodeScalars.count > 2 {
return false
}
for scalar in unicodeScalars {
switch scalar.value {
case 0x1F600...0x1F64F, // Emoticons
0x1F300...0x1F5FF, // Misc Symbols and Pictographs
0x1F680...0x1F6FF, // Transport and Map
0x2600...0x26FF, // Misc symbols
0x2700...0x27BF, // Dingbats
0xFE00...0xFE0F: // Variation Selectors
return true
default:
continue
}
}
return false
}
}
๋ฉ์ธ์ง๊ฐ ์ฑ๊ธ์ด๋ชจ์ง์ผ๋, ํฐํธ์ ์ฌ์ด์ฆ๋ฅผ ํค์ ๋ค.
if messageText.isSingleEmoji {
Text(messageText)
.padding(12)
.background(Color(.systemBlue).opacity(0.7))
.font(.system(size: 21))
.clipShape(MessageBubble(isFromCurrentUser: true))
.foregroundColor(.white)
} else {
Text(messageText)
.padding(12)
.background(Color(.systemBlue).opacity(0.7))
.font(.system(size: 14))
.clipShape(MessageBubble(isFromCurrentUser: true))
.foregroundColor(.white)
}
๋ฉ์ธ์ง๊ฐ ํ๊ธ์์ด๊ณ , ์ด๋ชจ์ง์ผ๋ ํฌ๊ฒ ์ ๋์์ง๋ค.