๊ฐœ๋ฐœ ๊ณต๋ถ€/๋ฐ๋ธŒ์ฝ”์Šค TIL

[ํด๋ผ์šฐ๋”ฉ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—”์ง€๋‹ˆ์–ด๋ง TIL] 240315 - React Native ๊ธฐ๋ณธ ์ปดํฌ๋„ŒํŠธ

๊ฐ€์šค์ด 2024. 3. 18. 16:16

Intro


์˜ค๋Š˜์€ React Native์—์„œ ์ž์ฃผ ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ๋ณธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ์•Œ์•„๋ณด๊ณ  ์ฝ”๋“œ์— ์ง์ ‘ ์ ์šฉํ•ด๋ณด๋Š” ์‹ค์Šต ๊ฐ•์˜๋ฅผ ๋“ค์—ˆ๋‹ค.

 

 

 

์˜ค๋Š˜ ํ•™์Šตํ•œ ๋‚ด์šฉ


View, Text

๊ฐ€์žฅ ๋งŽ์ด ์“ฐ์ด๋Š” ๊ธฐ๋ณธ ์ปดํฌ๋„ŒํŠธ๋Š” View, Text์ด๋‹ค.

๐Ÿ‘ฉ‍๐Ÿ’ป View๋Š” html์˜ div ํƒœ๊ทธ์™€ ๋น„์Šทํ•œ ์—ญํ• ์„ ํ•œ๋‹ค. ๋ฌด์กฐ๊ฑด flex์™€ ํ•จ๊ป˜ ์“ฐ์—ฌ alignItems, justifyContent๋กœ ์ •๋ ฌ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

Text๋Š” ๊ธฐ๋ณธ ๊ธ€์ž ์ปดํฌ๋„ŒํŠธ๋กœ ๊ธ€์ž๋ฅผ ๋„ฃ์œผ๋ ค๋ฉด Text๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

๐Ÿ‘ฉ‍๐Ÿ’ป allowFontScaling={false}๋กœ ์„ค์ •ํ•˜๋ฉด ๊ฐœ์ธ ๋””๋ฐ”์ด์Šค์—์„œ ๊ธ€์”จ๋ฅผ ํฌ๊ฒŒ ํ–ˆ์„ ๋•Œ ๊ฐ™์ด ์ปค์ง€๋Š” ๊ฒƒ์„ ๋ง‰๋Š” ์„ค์ •์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. (default=true)

 

<Text ellipsizeMode="tail" numberOfLines={1} allowFontScaling={false}
  style={{color: '#fff', fontSize: 24, fontWeight: 'bold'}}>
    React Native {test}React Native {test}React Native {test}React Native{' '}
	  {test}React Native {test}React Native {test}React Native {test}React
    Native {test}React Native {test}
</Text>

 

Text์—์„œ ellipsizeMode ์†์„ฑ์œผ๋กœ ๊ธ€์ž๊ฐ€ ๊ธธ์–ด์กŒ์„ ๋•Œ ์ƒ๋žต์— ๋Œ€ํ•œ ๋ชจ๋“œ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๊ณ , numberOfLines๋กœ ํ…์ŠคํŠธ ์ค„ ๊ธธ์ด๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

ScrollView

  • View๋ฅผ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ƒ์†๋ฐ›์•„ View์™€ ๊ด€๋ จ๋œ ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • horizontal๋กœ ๊ฐ€๋กœ ์Šคํฌ๋กค ์„ค์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • showVerticalScrollIndicator=false, showHorizontalScrollIndicator=false๋กœ ์Šคํฌ๋กค์ด ๋ณด์ด๋Š” ๊ฑธ ์—†์•จ ์ˆ˜ ์žˆ๋‹ค.

 

StyleSheet

React Native์—์„œ ์ถ”์ฒœํ•˜๋Š” ์Šคํƒ€์ผ๋ง ๋ฐฉ๋ฒ•์ด๋‹ค.

const styles = StyleSheet.create({
  basicWrapper: {
    height: 2000, flexDirection: 'row', justifyContent: 'center', alignItems: 'flex-start',
})

 

์ปดํฌ๋„ŒํŠธ์˜ style ์†์„ฑ์— styles.(์Šคํƒ€์ผ ๋ช…)๋กœ ์Šคํƒ€์ผ์„ ์ ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

SafeAreaView

  • ์•„์ดํฐ์˜ ์ƒํƒœ ํ‘œ์‹œ์ฐฝ์ด๋ผ ios์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์•ˆ๋“œ๋กœ์ด๋“œ์—์„  ์ž๋™์œผ๋กœ ๋ฌด์‹œ๋œ๋‹ค.
  • iOS V11 ์ด์ƒ๋ถ€ํ„ฐ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

TouchableOpacity

  • ํ„ฐ์น˜ํ•  ๋•Œ ๋ถˆํˆฌ๋ช…ํ•˜๊ฒŒ ๋ณ€ํ•˜๋ฉด์„œ ํ„ฐ์น˜๋จ์„ ์•Œ ์ˆ˜ ์žˆ๋Š” ์ปดํฌ๋„ŒํŠธ์ด๋‹ค.
  • onPress ์†์„ฑ์œผ๋กœ ํ„ฐ์น˜ํ–ˆ์„ ๋•Œ ๋™์ž‘์„ ์ฝœ๋ฐฑํ•จ์ˆ˜๋กœ ๋„ฃ์–ด์ค€๋‹ค.
<TouchableOpacity onPress={() => Alert.alert('์•ˆ๋…•ํ•˜์„ธ์š”')}
   style={{
     flex: 1,
     alignItems: 'flex-end',
     backgroundColor: 'beige',
}}>
  <Text style={{fontSize: 24}}>์„ค์ •</Text>
</TouchableOpacity>
  • activeOpacity๋กœ ํˆฌ๋ช…๋„ ์„ค์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • onLongPress ์†์„ฑ์€ ํ„ฐ์น˜๋ฅผ ๊ธธ๊ฒŒ ๋ˆŒ๋ €์„ ๋•Œ ๋™์ž‘ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์„ค์ •ํ•œ๋‹ค.
  • React Native์—์„œ Button ์ปดํฌ๋„ŒํŠธ๋ณด๋‹ค๋Š” TouchableOpacity๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค.

 

TextInput

  • ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋Š” ์ž…๋ ฅ์ฐฝ ์ปดํฌ๋„ŒํŠธ
  • width, height๋ฅผ ํ•„์ˆ˜๋กœ ์ค˜์•ผ ํ•œ๋‹ค.
  • KeyboardAvoidingView ์ปดํฌ๋„ŒํŠธ๋ฅผ ํ•จ๊ป˜ ์จ์„œ ํ‚ค๋ณด๋“œ ์กฐ์ •๋„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

Image

 <Image source={leftArrow} style={styles.backButton} />

 

source์— img ํŒŒ์ผ์ด๋‚˜ url์„ ๋ถˆ๋Ÿฌ์˜จ๋‹ค.

 

 

 

 

 

๋งˆ๋ฌด๋ฆฌ


๋ณธ๊ฒฉ์ ์œผ๋กœ React Native๋ฅผ ๋‹ค๋ค„๋ดค๋Š”๋ฐ ๋งŒ๋“ค์–ด์ ธ ์žˆ๋Š” ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ฐ€์ง€๊ณ  ๋ธ”๋Ÿญ์ฒ˜๋Ÿผ ์กฐ๋ฆฝํ•˜๋Š” ๋А๋‚Œ์ด๋ผ ์žฌ๋ฐŒ์—ˆ๋‹ค.

๋””์ž์ธ์ด ๋ถ€์กฑํ•˜๋”๋ผ๋„ ๊ทธ๋Ÿด๋“ฏํ•œ ์•ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์„ ๊ฒƒ ๊ฐ™๋‹ค.

 

 

 

'๊ฐœ๋ฐœ ๊ณต๋ถ€ > ๋ฐ๋ธŒ์ฝ”์Šค TIL' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ํด๋ผ์šฐ๋”ฉ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—”์ง€๋‹ˆ์–ด๋ง TIL] 240320, 240321- React Native์—์„œ ์นด๋ฉ”๋ผ ์•ฑ ์—ด๊ธฐ / ์•ฑ ์•„์ด์ฝ˜, ์Šคํ”Œ๋ž˜์‹œ ํ™”๋ฉด, ํฐํŠธ ์„ค์ •  (0) 2024.03.21
[ํด๋ผ์šฐ๋”ฉ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—”์ง€๋‹ˆ์–ด๋ง TIL] 240318, 240319 - React Native ์‹ฌํ™” ์ปดํฌ๋„ŒํŠธ  (0) 2024.03.19
[ํด๋ผ์šฐ๋”ฉ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—”์ง€๋‹ˆ์–ด๋ง TIL] 240314 - React Native ์‹œ์ž‘ํ•˜๊ธฐ  (0) 2024.03.14
[ํด๋ผ์šฐ๋”ฉ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—”์ง€๋‹ˆ์–ด๋ง TIL] 240312, 240313 - ReactJS ๋น„๋””์˜ค ์—๋””ํ„ฐ ์ œ์ž‘ํ•˜๊ธฐ ํ”„๋กœ์ ํŠธ ๋งˆ๋ฌด๋ฆฌ...  (0) 2024.03.13
[ํด๋ผ์šฐ๋”ฉ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜ ์—”์ง€๋‹ˆ์–ด๋ง TIL] 240311 - ReactJS ๋น„๋””์˜ค ์—๋””ํ„ฐ ์ œ์ž‘ํ•˜๊ธฐ ํ”„๋กœ์ ํŠธ (4)  (0) 2024.03.11