在 React Native 开发中,我们可以通过 transform样式的设置来实现组件(包括文字、图像)的变形。

一、四种变形样式

1,平移(translate)

translateX:沿 x 轴方向平移

translateY:沿 y 轴方向平移

d2ef6c530ad84a9b2a5280a89fee4c27.png

import React, { Component } from 'react';

import {

AppRegistry,

StyleSheet,

View,

Text,

} from 'react-native';

class Main extends Component {

render() {

return (

欢迎访问 hangge.com

欢迎访问 hangge.com

欢迎访问 hangge.com

);

}

}

const styles = StyleSheet.create({

flex:{

flex:1,

padding:35

},

t1: {

transform: [{translateX:100}]

},

t2: {

transform: [{translateY:50}]

}

});

AppRegistry.registerComponent('HelloWorld', () => Main);

2,缩放(scale)

scaleX:沿 x 轴方向放大

scaleY:沿 y 轴方向放大

scale:沿 x、y 轴方向都放大

74e217f31ca941b01cd475dfa0c0c623.png

import React, { Component } from 'react';

import {

AppRegistry,

StyleSheet,

View,

Text,

} from 'react-native';

class Main extends Component {

render() {

return (

欢迎访问 hangge.com

欢迎访问 hangge.com

欢迎访问 hangge.com

欢迎访问 hangge.com

);

}

}

const styles = StyleSheet.create({

flex:{

flex:1,

alignItems: 'center'

},

t1: {

transform: [{scaleX:2}]

},

t2: {

transform: [{scaleY:2}]

},

t3: {

transform: [{scale:2}]

}

});

AppRegistry.registerComponent('HelloWorld', () => Main);

3,旋转(rotate)

rotateX:沿 x 轴旋转

rotateY:沿 y 轴旋转

rotateZ:沿 z 轴旋转

rotate:不指定轴旋转

dd2fc58529405d8b6d861ce67fcbaa95.png

import React, { Component } from 'react';

import {

AppRegistry,

StyleSheet,

View,

Text,

} from 'react-native';

class Main extends Component {

render() {

return (

欢迎访问 hangge.com

欢迎访问 hangge.com

欢迎访问 hangge.com

欢迎访问 hangge.com

欢迎访问 hangge.com

);

}

}

const styles = StyleSheet.create({

flex:{

flex:1,

alignItems: 'center'

},

t1: {

transform: [{rotateX:'45deg'}]

},

t2: {

transform: [{rotateY:'45deg'}]

},

t3: {

transform: [{rotateZ:'45deg'}]

},

t4: {

transform: [{rotate:'45deg'}]

}

});

AppRegistry.registerComponent('HelloWorld', () => Main);

4,倾斜(skew)

skewX:沿 x 轴方向倾斜

skewY:沿 y 轴方向倾斜

4ebf9ce59ba5e2530d08621576b9d6dc.png

import React, { Component } from 'react';

import {

AppRegistry,

StyleSheet,

View,

Text,

} from 'react-native';

class Main extends Component {

render() {

return (

欢迎访问 hangge.com

欢迎访问 hangge.com

欢迎访问 hangge.com

);

}

}

const styles = StyleSheet.create({

flex:{

flex:1,

alignItems: 'center'

},

t1: {

transform: [{skewX:'45deg'}]

},

t2: {

transform: [{skewY:'45deg'}]

}

});

AppRegistry.registerComponent('HelloWorld', () => Main);

旋转与倾斜的区别:

rotate控制目标整体旋转,与目标内部形状无关,目标内部不发生任何形变。

skew目标内部的形状会随倾斜而改变。

二、组合式样多种形变样式

上面的代码中我们每个组件只使用一种形变效果。而在实际开发时,可以同时叠加使用多种形变效果。

951007cc9f65478f7fdb780f25ea3aaa.png

transform: [{scale:2}, {rotateY:'45deg'}] //x,y轴都放大并且y轴倾斜

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐