1

我是一个新手 ios 程序员,我正在做我的第一个 ios 项目。在我的项目中,我有几个UIViewUIViewController. 在每个视图中,我都覆盖drawRect了方法并绘制了几个圆圈。在我的一个视图中,我需要绘制一个矩形,当我触摸它时,它会在其下方绘制另外 3 个带有动画的矩形。我想知道最好的方法是什么!我正在考虑通过调用setNeedsDisplay并用动画绘制其他三个矩形来在触摸后重绘视图。我怎样才能实现这一点,还有什么方法可以最好地用动画来执行这个特定的事情?

4

1 回答 1

1

覆盖 drawRect 可能不是您的最佳解决方案,因为要完成多种类型的动画,您需要在计时器下多次重绘。除此之外,您的绘图将使用 CPU 完成,您将无法利用任何硬件加速。

我建议在三个新矩形可见之前,将三个 UIView 添加到视图层次结构中这些矩形应该在的位置。将backgroundColor每个视图的属性设置为您想要的矩形颜色,并将alpha每个视图的值设置为 0。当需要将矩形动画显示为视图时,您可以使用如下代码:

[UIView animateWithDuration:0.2 animations:^{
    rectView1.alpha = 1.0;
    rectView2.alpha = 1.0;
    rectView3.alpha = 1.0;
}];

当然,根据您的应用程序更改动画的持续时间,您也可以更改 rectViews 的其他属性。假设您希望矩形淡入从侧面飞入。您可以通过frame在动画之前然后在动画块内调整每个 rectView 的属性来实现这一点。

于 2013-05-29T17:38:32.273 回答