Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何移动/设置CGRECT动画_Ios_Objective C - Fatal编程技术网

Ios 如何移动/设置CGRECT动画

Ios 如何移动/设置CGRECT动画,ios,objective-c,Ios,Objective C,我很难移动CGRECT。我想做一场突破赛。在我的drawView文件中,我通过删除注释在drawRect函数中编写了代码。 我用这个moveBall(&&u-ball,&&u-context,rect)结束drawRect函数 moveball()在my viewController.h/viewController.m中声明/实现 我不确定球在控制器中之后如何移动/设置动画。我有以下代码: void moveBall(CGRect *ball, CGContextRef *context, C

我很难移动CGRECT。我想做一场突破赛。在我的drawView文件中,我通过删除注释在drawRect函数中编写了代码。 我用这个
moveBall(&&u-ball,&&u-context,rect)结束drawRect函数

moveball()
在my viewController.h/viewController.m中声明/实现

我不确定球在控制器中之后如何移动/设置动画。我有以下代码:

void moveBall(CGRect *ball, CGContextRef *context, CGRect rect) 
{
    CGFloat velX = 1;
    CGFloat velY = 1;

    while (ball->origin.x + CGRectGetWidth(*ball) < CGRectGetWidth(rect))
    {
        CGContextClearRect(*context, *ball);
        *ball = CGRectOffset(*ball, velX, velY);
        CGContextFillEllipseInRect(*context, *ball);
    }
};
void moveBall(CGRect*ball,CGContextRef*context,CGRect rect)
{
CGX=1;
cg=1;
while(ball->origin.x+CGRectGetWidth(*ball)
发生的情况是,球“移动”到另一个位置,而不是在那里设置动画。问题是while循环被实现,最终结果被显示。我希望在绘图完成后运行while循环


有人能指导我让球移动吗?

尝试使用CoreGraphics框架在
drawRect
方法中制作动画是徒劳的

对于动画,您应该使用其他用于此目的的框架/技术

  • 标准应用程序-核心动画
  • 游戏-SpriteKit、OpenGL ES、Metal、cocos2D、Unity3D、

作为旁白,你是否考虑使用SRIPITKIT或COCOS2D而不是UIKit?你可能会得到一些你可以玩的东西。UIKit的问题在于它不是为此而设计的,实现一个游戏循环有些先进。问题在于我是第一次为iPhone开发。我以前做过C,所以我自然会做低级编程。因此,我对使用spritekit不是很了解。那么,基本的问题是,是否可以使用我用SpriteKit绘制的当前图形?我可以把它们包装起来吗?
drawRect
不应该用于动画。这不正是我说的吗?