首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在UIView中进行动画制作?

如何在UIView中进行动画制作?
EN

Stack Overflow用户
提问于 2010-12-29 18:24:01
回答 1查看 847关注 0票数 0

我有一个自定义的UIView,里面有一个二维数组。此数组包含我使用drawRect方法在自定义UIView上绘制的像素。

现在我想用100步(或者只用结果数组)改变这个像素(我的2维数组)。如何使此效果具有动画效果?这是没有问题的显示以前的状态,然后实际的状态,但我需要动画之间的状态。

谢谢你的帮助。

致以最好的问候,沃伊特克

更新,同一天,14:15

到目前为止,我是通过以下方式完成的:

代码语言:javascript
运行
复制
- (void)calculate:(NSTimer *)timer {

int result = [myView calc];
if(result > 0)
{
    [NSTimer scheduledTimerWithTimeInterval:0.00001f
                                     target:self selector:@selector(calculate:)
                                   userInfo:nil
                                    repeats:NO];
}
[myView setNeedsDisplay];}

但它并不是很好,因为刷新会使它变得非常慢。如果我每2-4次刷新一次计算,我的动画就不流畅。

我的绘图方法:

代码语言:javascript
运行
复制
- (void)drawRect:(CGRect)rect{
int i = 0, j = 0;

CGContextRef myContext = UIGraphicsGetCurrentContext();


// ****************** drawing ********************
for(i = 0; i < 768; i++)
{
    for(j = 0; j < 768; j++)
    {
         if(board[i][j] == 1)
         {
             CGContextSetRGBFillColor (myContext, 1, 0, 0, 1);
             CGContextFillRect (myContext, CGRectMake (i, j, 1, 1));
         }
        else
        {
            CGContextSetRGBFillColor (myContext, 0, 0, 1, 1);
            CGContextFillRect (myContext, CGRectMake (i, j, 1, 1));
        }
    }
}

}

EN

回答 1

Stack Overflow用户

发布于 2010-12-29 21:46:18

使用fill rect一次绘制一个像素将需要一些时间。

我建议你设置一个内存区作为你想要绘制的图像,然后使用CGImageCreate创建一个可以在UIView中绘制的图像。

例如,使用see

http://www.iphonedevsdk.com/forum/iphone-sdk-development/23525-cgimagecreate-alpha.html

http://iphonedevelopment.blogspot.com/2009/04/creating-uiimages-from-tga-data.html

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4553268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档