加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

Use React Native draw Canvas(ios)

发布时间:2020-12-15 03:37:16 所属栏目:百科 来源:网络整理
导读:Use React Native draw Canvas(ios) 1.Canvas.js 'use strict'var React = require('react-native');var { View,WebView} = React;var Canvas = React.createClass({ propTypes: { context: React.PropTypes.object,render: React.PropTypes.func.isRequired

Use React Native draw Canvas(ios)


1.Canvas.js
'use strict'
var React = require('react-native');
var {
  View,WebView
} = React;

var Canvas = React.createClass({
  propTypes: {
    context: React.PropTypes.object,render: React.PropTypes.func.isRequired
  },render() {
    var contextString = JSON.stringify(this.props.context);
    var renderString = this.props.render.toString();
    return (
      <View>
        <WebView automaticallyAdjustContentInsets={false}
          html={"<style>*{margin:0;padding:0;}canvas{position:absolute;transform:translateZ(0);}</style><canvas></canvas><script>var canvas=document.querySelector('canvas');(" + renderString + ").call(" + contextString + ",canvas);</script>"}
          opaque={false} underlayColor={'transparent'}
          style={this.props.style} />
      </View>
    );
  }
});
module.exports = Canvas;

2. index.ios.js
/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 */
'use strict';
var React = require('react-native');
var {
  AppRegistry,Text,View,Component
} = React;
var Canvas = require('./Canvas');

var SimpleApp = React.createClass({
  render() {
    var context = {msg: "Hello!"};
    return (
      <View style={styles.container}>
        <View>
          <Canvas context={context}
          render={renderCanvas}
          style={{height: 200,width: 200}} />
        </View>
      </View>
    )
  }
});

function renderCanvas(canvas) {
  var message = this.msg;
  var ctx = canvas.getContext('2d'),particles = [],patriclesNum = 50,w = 200,h = 200,colors = ['#f35d4f','#f36849','#c0d988','#6ddaf1','#f1e85b'];
  canvas.width = 200;
  canvas.height = 200;
  canvas.style.left = (window.innerWidth - 200) / 2 + 'px';
  if (window.innerHeight > 200)
    canvas.style.top = (window.innerHeight - 200) / 2 + 'px';

  function draw() {
    ctx.font = "20px Georgia";
    ctx.fillText(message,10,50);
  }
  draw();
}

var styles = React.StyleSheet.create({
  container: {
    padding: 30,marginTop: 65,borderColor: '#e7e7e7',},});

AppRegistry.registerComponent('SimpleApp',() => SimpleApp);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读