Swift:像Java一样的双缓冲

时间:2016-07-01 14:33:04

标签: java swift animation view graphics

在Java中,我可以将像素数据写入图像,然后通过重写方法(paint和paintComponent)将其打印到屏幕上。我可以通过更新图像并调用refresh()调用paint / paintComponent循环来轻松刷新屏幕。

我想在swift(3)中使用UIImage执行此操作。我可以更新图像,但我无法弄清楚如何将图像重复投影到屏幕上,打印屏幕,并在我需要刷新屏幕时重复。

首先,什么类型的快速项目(单视图应用,游戏等)最适合重复刷新屏幕?

其次,我如何在Swift中创建一个(规范的)循环,每隔一段时间刷新一次屏幕?

在java中,这看起来像(在扩展Frame的类中):

static int width = 1440;
static int height = 900;

private BufferedImage canvas;
static Color[][] RGBMap = new Color[width][height];

public void paintComponent(Graphics g) {
    super.paintComponent(g);
    Graphics2D g2 = (Graphics2D) g;
    g2.setBackground(Color.WHITE);
    g2.clearRect(0, 0, width, height);
    g2.drawImage(this.canvas, null, null);

    paint();
}

public void paint() {

    int i = 0;
    while (i < width) {
        int t = 0;
        while (t < height) {
            this.canvas.setRGB(i, t, RGBMap[i][t].getRGB());
            t++;
        }
        i++;
    }

    //Refreshes RGBMap
    iterate();

    repaint();
}

0 个答案:

没有答案