์ถ์ฒ - React Native ๊ณต์ ํ์ด์ง Text ๋ฌธ์
React Native์์ ํ ์คํธ์ ์ค ๊ธธ์ด๋ฅผ flexible ํ๊ฒ ๊ธธ์ด ์กฐ์ ๋ฐ ์ค ๋ฐ๊ฟ์ ํ๊ณ ์ถ์ ๋๋ <Text> ์ปดํฌ๋ํธ์ ์์ฑ ์คnumberOfLines ๋ฅผ ์ฌ์ฉํ๋ฉด ๋๋ค.
<View style={{width: '100%', padding:20}}>
<Text numberOfLines={1} ellipsizeMode="tail" style={{fontSize:18, fontWeight: 'bold', marginBottom:10}}>
ํ๊ธ์ ๋ํ์ฌ
</Text>
<Text numberOfLines={5} ellipsizeMode="tail" style={{fontSize:14}}>
ํ๋ฏผ์ ์ ํด๋ก๋ณธ]์ ์ธ์ข
์ด ์ง์ ์๋ฌธ์ ์ฐ๊ณ ์ ์ธ์ง ๊ฐ์ ์ ํ๋ค์๊ฒ ๊ธ์์ ๋ํ ์ค๋ช
์ ์ ๊ฒ ํ ๊ฒ์
๋๋ค.
์ด ์ฑ
์ด 1940๋
์ ์๋์์ ๋ฐ๊ฒฌ๋ ๋๊น์ง ์ฐ๋ฆฌ๋ ํ๊ธ์ ์ฐฝ์ ์๋ฆฌ์ ๋ํด ์ ํ ๋ชจ๋ฅด๊ณ ์์์ต๋๋ค.
๊ทธ๋ฌ๋ค ์ด ์ฑ
์ด ๋ฐ๊ฒฌ๋จ์ผ๋ก ํด์ ํ๊ธ์ด ์ผ๋ง๋ ๊ณผํ์ ์ธ ์๋ฆฌ๋ก ๋ง๋ค์ด์ก๋์ง ์๊ฒ ๋์๋ต๋๋ค.
์ด ์ฑ
์ด ์ฐ๋ฆฌ์๊ฒ ์ ํด์ง ๊ฒ์ ์ ์ ์ผ๋ก ์ฑ๋ถ๋์ ์๋ ๊ฐ์ก๋ฏธ์ ๊ด์ ์ธ์ด ์ ํํ ์ ์์ ๊ณต์
๋๋ค.
์ ์์ ์์ฃผ ๋น์ผ ๊ฐ๊ฒฉ์ผ๋ก ์ด ์ฑ
์ ์๊ณ 6โ25 ๋์๋ ์ด ์ฑ
ํ ๊ถ๋ง ๋ค๊ณ ํผ๋ ๊ฐ ์ ๋๋ก ์ด ์ฑ
์ ์งํค๊ธฐ ์ํด ๋ชธ์ ๋ฐ์น ๋ถ์
๋๋ค.
์ด ๋ถ๋ [์ง์ง]๋ฅผ ์ธ๊ณ์ ์๋ฆฐ ๋ฐ๋ณ์ ์ ์์ฒ๋ผ ์ฐ๋ฆฌ์ ๋ฌธํ์์
์
๋๋ค.
[๋ค์ด๋ฒ ์ง์๋ฐฑ๊ณผ] ํ๊ธ - ์ธ์์์ ๊ฐ์ฅ ์ ๋นํ ๋ฌธ์ (์๋ํ ๋ฌธํ์ ์ฐ, ์ต์ค์)
</Text>
</View>
์์ ๊ฐ์ด <Text numberOfLines={๋ผ์ธ์ ์}> ์ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉํ๋ฉด ๋๋๋ฐ, ๋ณดํต ellipsizeMode(์๋ต์ ๋ํ ๋ชจ๋) ์์ฑ๋ ํจ๊ป ์ฌ์ฉํ๋ค.
ellipsizeMode ๋ ์ค์ ์ ์ ํ๊ฒ ๋ ๊ฒฝ์ฐ, default ๊ฐ์ 'tail' ์ด๋ฉฐ, 'head' | 'middle' | 'tail' | 'clip' ๋ก ์ด 4๊ฐ์ง ๋ชจ๋๊ฐ ์๋ค.
1. head ๋ชจ๋
ellipsizeMode='head'
ํ ์คํธ์ ๋ง์ง๋ง ์ค head ๋ถ๋ถ์ ใปใปใป ํ์๊ฐ ๋์จ๋ค. (์ฒ์ 4์ค + ๋ง์ง๋ง ์ค์ด ๋์ด.)
์ฒ์๋ถํฐ 4๋ฒ์งธ ์ค๊น์ง ๋์ค๊ณ , ๋ง์ง๋ง ์ค์ head ๋ถ๋ถ์ ใปใปใป ํ์๊ฐ ๋์ค๋ฉฐ, ํ ์คํธ ๋ฐ์ดํฐ์ ๋ง์ง๋ง ํ ์คํธ๊ฐ ๋ค์ ์ด์ด์ ๋์จ๋ค.
2 .middle ๋ชจ๋
ellipsizeMode='middle'
ํ ์คํธ์ ๋ง์ง๋ง ์ค ์ค๊ฐ ๋ถ๋ถ์ ใปใปใป ํ์๊ฐ ๋์จ๋ค. (์ฒ์ 4์ค + ๋ง์ง๋ง ์ค์ด ๋์ด.)
์ฒ์๋ถํฐ 4๋ฒ์งธ ์ค๊น์ง ๋์ค๊ณ , ๋ง์ง๋ง ์ค์ ์ค๊ฐ ๋ถ๋ถ์ ใปใปใป ํ์๊ฐ ๋์ค๋ฉฐ, ํ ์คํธ ๋ฐ์ดํฐ์ ๋ง์ง๋ง ํ ์คํธ๊ฐ ๋ค์ ์ด์ด์ ๋์จ๋ค.
3 .tail ๋ชจ๋
ellipsizeMode='tail'
ํ ์คํธ์ ๋งจ ๋ง์ง๋ง์ ใปใปใป ํ์๊ฐ ๋์จ๋ค.
ํ ์คํธ ๋ฐ์ดํฐ๊ฐ 5์ค ๋์ค๊ณ ๋ง์ง๋ง ์ค์ ๋ ๋ถ๋ถ์ ใปใปใป ํ์๊ฐ ๋์จ๋ค.
4 .clip ๋ชจ๋
ellipsizeMode='clip'
ํ ์คํธ ๋ฐ์ดํฐ๊ฐ 5์ค ๋์ค๊ณ ๋ง์ง๋ง์ ํ ์คํธ๊ฐ ์๋ ค์ ๋์จ๋ค.
React Native Text ์ปดํฌ๋ํธ์ ellipsizeMode ์ numberOfLines ์ค๋ช .
/**
* This can be one of the following values:
*
* - `head` - The line is displayed so that the end fits in the container and the missing text
* at the beginning of the line is indicated by an ellipsis glyph. e.g., "...wxyz"
* - `middle` - The line is displayed so that the beginning and end fit in the container and the
* missing text in the middle is indicated by an ellipsis glyph. "ab...yz"
* - `tail` - The line is displayed so that the beginning fits in the container and the
* missing text at the end of the line is indicated by an ellipsis glyph. e.g., "abcd..."
* - `clip` - Lines are not drawn past the edge of the text container.
*
* The default is `tail`.
*
* `numberOfLines` must be set in conjunction with this prop.
*
* > `clip` is working only for iOS
*/
ellipsizeMode?: 'head' | 'middle' | 'tail' | 'clip' | undefined;
/**
* Used to truncate the text with an ellipsis after computing the text
* layout, including line wrapping, such that the total number of lines
* does not exceed this number.
*
* This prop is commonly used with `ellipsizeMode`.
*/
numberOfLines?: number | undefined;