React Native
웹에서 주로 사용하는 transform: translate(-50%) 속성 사용 불가.
예를 들어 가로 중앙 배치의 경우, left: 50%을 적용했으면 transform에서는 width의 절반값만큼 음수로 지정해줘야한다.
transfom: [{ translateX: -6 }]웹과는 달리 white-space: nowrap등은 지원되지 않는다.
텍스트를 줄바꿈 없이 한 줄로 나오게 하려면, flexDirection: row / flexWrap: nowrap을 적용해야 한다.
그리고 Text 컴포넌트의 속성인 numberOfLines, ellipsizeMode를 사용해서 말줄임 처리를 해야 한다.
<Text numberOfLines={2} ellipsizeMode={tail} />
// tail: 끝부분에 말줄임 표시
// head: 시작 부분
// middle: 중간
// clip: 말줄임 없이 잘라내기예를 들어 box-shadow: 0px 6px 15px 0px rgba(37, 124, 255, 0.50);이면 다음과 같이 적용한다.
...Platform.select({
ios: {
shadowColor: theme.color.primary.blue1,
shadowOpacity: 0.5,
shadowOffset: {
width: 0,
height: 6
},
shadowRadius: 15,
},
android: {
shadowColor: theme.color.primary.blue1,
elevation: 8,
},
}),참고로 Android의 elevation과 CSS의 box-shadow의 blur-radius는 직접적인 1:1 매핑 관계가 없다.
elevation은 안드로이드 Material Design의 개념으로, 0부터 24 사이의 값을 가지며 요소가 표면으로부터 얼마나 떠 있는지를 나타낸다. 높이가 높을수록 그림자가 더 크고 부드러워진다.
elevation에 대한 대략적인 가이드라인이 있긴 하지만, 절대적으로 이 값으로 적용된다는 것은 아니다. (그냥 눈으로 보면서 맞춰야함)